桂 林 理 工 大 学实 验 报 告实验五 数组
桂 林 理 工 大 学
实 验 报 告
班级 计算机类20 学号32020520 姓名 实验名称实验五 数组 日期 2020年 11月28日
一、实验目的:
- 熟悉掌握一维数组和二维数组的定义和使用
- 了解各种数组的输入输出
- 了解字符数组和字符串函数的使用
- 掌握和数组有关的算法(排序算法)
二、实验环境:
PC + Windows +Visual C++6.0
三、实验内容:
(主要内容的文字及贴图)
例题:请上机调试以下例题,并理解算法思想
例 6.3冒泡法排序选择法
#include <stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("input 10 numbers :\n");
for(i=0;i<10;i++)//for循环输出数组
scanf("%d",&a[i]);
printf("\n");
//开始冒泡排序
for(j=0;j<9;j++)//外层循环控制比较的趟数,一般为数组长度-1
for(i=0;i<9-j;i++)//内存循环控制每一趟比较多少次,一般为数组长度-外层循环变量-1
if(a[i]>a[i+1])//升序,如果前面大于后面则交换
{t=a[i];a[i]=a[i+1];a[i+1]=t;}//引入变量作为交换媒介
for(i=0;i<10;i++)//for循环输出数组
printf("%d ",a[i]);
printf("\n");
return 0;
}
例 6.3选择法排序
#include <stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("input 10 numbers :\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10-1;i++)//只用比较9个数
{
for(j=i+1;j<10;j++)//第一个数与后面的数逐个比较
{
if(a[i]>a[j])
{
t=a[i];a[i]=a[j];a[j]=t;
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
例 6.4 矩阵的行列互换
#include <stdio.h>
int main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:\n");
for(i=0;i<2;i++)//行
{
for(j=0;j<3;j++)//列
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<3;i++)//行
{
for(j=0;j<2;j++)//列
{
printf("%5d",b[i][j]);
}
printf("\n");
}
return 0;
}
例6.9 比较三个字符串的大小
#include <stdio.h>
#include <string.h>
int main()
{
char str[3][20];
char string[20];
int i;
for (i=0;i<3;i++)
gets (str[i]);
if(strcmp(str[0],str[1])>0)//strcmp-字符串比较函数,若str[0]>str[1]
strcpy(string,str[0]);//strcpy-字符串复制函数,把str[0]的字符串赋给字符数组string
else
strcpy(string,str[1]);//否则把str[1]的字符串赋给字符数组string
if(strcmp(str[2],string)>0)//若str[2]>str[0]
strcpy(string,str[2]);//把str[2]的字符串赋给字符数组string
printf("\nthe largest string is :\n%s\n",string);
return 0;
}
习题:
- 实现选择法排序
- 求一个n*n(n<10)数组左下三角(包括主对角线)元素的和。
输入格式:
先输入n(n<10)值,然后再输入各个数组元素值。
###输入样例:
2
1 2
3 4[回车]
输出格式:
输出左下三角(包括主对角线)全部元素的和。
### 输出样例:
8
#include<stdio.h>
int main()
{
int a[10][10],n;
int i,j;
int sum = 0;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
scanf("%d",a[i]+j);
}
}
for(i = 0; i < n; i++)
{
for(j = 0; j <= i; j++)//不给(0,1)相加 0,0 0,1 1,0 1,1
sum += a[i][j];
}
printf("%d\n",sum);
return 0;
}
3.
#include <stdio.h>
#define N 100
int main()
{
int i,j,n,a[N][N];
printf("输入一个n*n的整型n:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<n-i-1;j++)
a[i][j]=10;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]>9)
{
printf(" ");
}
else printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
4
#include <stdio.h>
#define N 100
int main()
{
int i,j,n,a[N][N];
printf("输入一个n*n的整型n:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
for(i=0;i<n;i++)
{
for(j=0;j<n-i;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
- 输入一行字符,统计各种字母、数字、空格的个数
#include <stdio.h>
#define N 100
int main()
{
int i,letter=0,space=0,number=0,other=0;
char a[N];
for(i=0;i<10;i++)
{
a[i]=getchar();
if(a[i]==' ')
space++;
else if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
letter++;
else if(a[i]>='0'&&a[i]<='9')
number++;
else
other++;
}
printf("letter=%d,space=%d,number=%d,other=%d",letter,space,number,other);
return 0;
}
- 判断N阶矩阵是否为对称矩阵,对阵矩阵任意下标i和j的元素满足A[i][j]等于A[j][i] (习题6.4)
#include<stdio.h>
#define m 10
int main()
{
int A[m][m],i,j,flag=0,n;
printf("请输入n*n矩阵:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&A[i][j]);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(A[i][j]!=A[j][i])
flag=1;
break;
}
if(flag==1)
break;
}
if(flag==1)
printf("\n%d阶矩阵是为非对称矩阵\n",n);
else printf("\n%d阶矩阵是为对称矩阵\n",n);
return 0;
}
7 杨辉三角
#include <stdio.h> //1.各行第一个数都是1
#define N 10//2.各行最后一个数都是1
int main()//从第3行起,除上面指出的第1个数和最后一个数外,其余各数是上一行同列和前一列两个数之和
{
int i,j,a[N][N];
for(i=0;i<N;i++)//数组为10行10列
{
a[i][i]=1;//使对角线元素的值为1
a[i][0]=1;//使第1列元素的值为1
}
for(i=2;i<N;i++)//从第3行开始处理
for(j=1;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];//精华公式
for(i=0;i<N;i++)
{
for(j=0;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
8输入一个字符串,统计有多少其中有多少个单词(习题6.8)
#include<stdio.h>
int main()
{
char string[81];
int i,num=0,word=0;//提供变量
char c;
gets(string);//输入字符串函数,输入一个字符串给字符数组string
for(i=0;(c=string[i])!='\0';i++)// \0字符串结束标志,空字符串
if(c==' ')//如果当前字符为空格,
word=0;//提供变量
else if(word==0) //如果当前字符不为空格并且前一字符为空格(word=0)
{word=1;//提供变量
num++;
}
printf("There are %d words in this line.\n",num);
return 0;
}
9、IP地址转换(一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。
输入格式:输入在一行中给出32位二进制字符串。
输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。
输入样例:
11001100100101000001010101110010
输出样例:
204.148.21.114
#include<stdio.h>
#include<math.h>
int main()
{
int b=0,c=0,d=0,e=0,j=7;
int i;
char a[32];
for(i=0;i<32;i++)
scanf("%c",&a[i]);
for(i=0;i<8;i++)
{
b=(a[i]-'0')*pow(2,j)+b;
j=j-1;
}
printf("%d.",b);
j=7;
for(i=8;i<16;i++)
{
c=(a[i]-'0')*pow(2,j)+c;
j=j-1;
}
printf("%d.",c);
j=7;
for(i=16;i<24;i++)
{
d=(a[i]-'0')*pow(2,j)+d;
j=j-1;
}
printf("%d.",d);
j=7;
for(i=24;i<32;i++)
{
e=(a[i]-'0')*pow(2,j)+e;
j=j-1;
}
printf("%d",e);
return 0;
}
四、心得体会(150字以上):
通过本次实验,熟悉掌握一维数组和二维数组的定义和使用,了解各种数组的输入输出,了解字符数组和字符串函数的使用,掌握和数组有关的算法(排序算法)。
桂 林 理 工 大 学实 验 报 告实验五 数组相关推荐
- 桂 林 理 工 大 学实 验 报 告 实验名称实验六 函数
桂 林 理 工 大 学 实 验 报 告 班级 计算机类2 学号320205 姓名 实验名称实验六 函数 日期 2020年 12月7日 一.实验目的: 掌握定义函数.声明函数的方法. 掌握调用函 ...
- 桂 林 理 工 大 学实 验 报 告实验四 选择结构程序设计
桂 林 理 工 大 学 实 验 报 告 班级 计算机类 学号3202052 姓名 实验名称实验四 选择结构程序设计 日期 2020年 11月22 日 一.实验目的: 熟悉掌 ...
- 桂林理工大学 计算机网络 实 验 报 告 静态路由实验
桂 林 理 工 大 学 实 验 报 告 班级 计算机类 学号 3202052 姓名 同组实验者 无 实验名称 静态路由实验 ...
- c#语言程序设计上机实验,《C#语言程序设计》实 验 报 告
<<C#语言程序设计>实 验 报 告>由会员分享,可在线阅读,更多相关<<C#语言程序设计>实 验 报 告(20页珍藏版)>请在人人文库网上搜索. 1. ...
- 计算机网络基础北邮,北邮 大三下 计算机网络技术实践 实验五_图文
北邮 大三下 计算机网络技术实践 实验五_图文 更新时间:2017/1/22 21:54:00 浏览量:691 手机版 实验报告 课程名称: 计算机网络技术基础 实验名称: 实验五 以太网数据传输 ...
- 大数据技术原理与应用实验五
实验:五 实验题目:熟悉常用的HDFS操作-利用Java API编程实现 1.实验目的 · 熟悉HDFS操作常用的Java API. 2.实验平台 · Hadoop 2.7.1 · Eclipse · ...
- 南京邮电大学电工电子基础B实验五(串联谐振电路)
RLC串联谐振电路 一. 实验目的 1.研究RLC串联谐振电路的幅频特性: 2.加深理解品质因数Q与电路其他参量的关系: 二. 主要仪器设备及软件 硬件:函数信号发生器.示波器.万用表.电阻.电感.电 ...
- 大学计算机实验在林学的应用,大学计算机实验6实验报告.pdf
深 圳 大 学 实 验 报 告 课程名称: 计算机基础 实验名称: 演示文稿制作 学院: 建筑与城市规划学院 专业: 建筑学 报告人: XXX 学号: 2015XXX 班级: XXXXXX 同组人: ...
- 沈阳工程学院计算机网络实训报告,计算机网络实验报告(2).pdf
精品文档 沈 阳 工 程 学 院 学 生 实 验 报 告 (课程名称:计算机网络) 实验题目: 2 网络拓扑结构设计及组网实验 班 级 计算机 161 实验地点 信息学院网络实验室 姓 名 刘强 阎书 ...
最新文章
- removeAllViews()和removeAllViewsInLayout()之间的区别?
- [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...
- 使用 cout 输出数据之控制输出格式(二)
- 你们考试,我们都有点紧张呢…
- Java后端开发需要具备哪些知识结构
- Web.config的配置
- Android Wear计时器开发
- 【Python3爬虫】快就完事了--使用Celery加速你的爬虫
- mac scp工具_Mac远程ssh连接乌班图并实现爬虫操作
- [POJ 1273]Drainage Ditches
- 我想去做机器学习 接下来发一些机器学习实战的算法
- mybatis学习笔记(10)-一对一查询
- 安装php-zbarcode的步骤方法
- linux命令应用大词典.pdf,Linux命令应用大词典
- 燕山大学高数AⅠ复习资料
- windows平台使用Docker搭建分布式hadoop集群
- 【数据挖掘】2022年2023届秋招奇虎360机器学习算法工程师 笔试题
- 网页加载Java特别慢_打网页打开速度慢,教你3分钟解决
- 计算机考研数学考数学二的专业,2018考研数学:过来人教你如何数学二考到130!...
- 理解计算:从根号2到AlphaGo 第3季 神经网络的数学模型