实验9 数组高级应用
目录
9-1.c:编写一个程序计算两个3*4阶矩阵相加,并打印出结果。
9-2.c:从键盘输入一个5*5矩阵,计算其正对角线元素之和。
9-4.c:从键盘输入一个字符串并保存起来,统计该字符串中大写字母、小写字母、数字、其他字符的个数。
9-5.c:编写程序实现输入两个字符串,连接起来后保存在第三个字符串中(不用strcpy函数)。
9-7.c:输入一个字符串,再输入一个字符,将字符串中的这一字符全部删除。
一 :实验目的
1:理解二维数组在内存中的存放形式。
2:掌握二维数组变量的定义和数组元素的引用。
3:掌握字符串和字符数组的区别。
二 :实验内容提要
1:二维数组的定义和引用
二维数组在物理上采用按行存储的循序存储方式,我们称这种存储顺序为以行序为主序的循序存储结构。
定义形式如下:
类型 数组名[行数][列数]
2:二维数组的基本操作
int a[2][3] = { {1,2,3},{4,5,6}};
int a[2][3] = {{1},{3}};
int a[ ][3] = {{1,2},{4}};
int a[2][3] = {1,2,3,4,5,6};
int a[2][3] = {1,2,3};
int a[ ][3] = {1,2};
//在程序中进行赋值 用循环的嵌套;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
printf("%6d",a[i][j]);
printf(“\n”);
}
3:字符数组(字符串)
char str[20];
for(i=0;i<20;i++)
scanf(“%c”,&str[i]);
for(i=0;i<20;i++)
scanf(“%c”,str[i]);
scanf(“%s”,str);
printf(“%s”,str);
gets(str);
puts(str);
注意:字符数组的名字 其实代表的是字符数组的首地址。
三:实验题目
9-1.c:编写一个程序计算两个3*4阶矩阵相加,并打印出结果。
9-2.c:从键盘输入一个5*5矩阵,计算其正对角线元素之和。
9-3.c:定义一个一维数组s[4]和一个二维数组a[4][5],并通过键盘对二维数组赋初值。找出二维数组中每行的最大值,并填入一维数组。如第0行的最大值填入s[0], 第1行的最大值填入s[1],以此类推。
9-4.c:从键盘输入一个字符串并保存起来,统计该字符串中大写字母、小写字母、数字、其他字符的个数。
9-5.c:编写程序实现输入两个字符串,连接起来后保存在第三个字符串中(不用strcpy函数)。
9-6.c:输入一个字符串,统计其中单词个数。
升级版:定义一个二维字符数组s[4][20],输入四句话保存起来,并统计每句话中的单词个数。
9-7.c:输入一个字符串,再输入一个字符,将字符串中的这一字符全部删除。
升级版:
(1)查找字符:从键盘输入一行字符串,再输入一个字符,判断后输入的字符在前面字符串中出现的次数,若没有则输出此字符不存在。
(2)删除单词:输入一个单词,将字符串中的这一单词找出来全部删除。
9-8.c:输入10个同学3门课成绩并保存。
计算每个同学的总分和平均分,保存并输出。
计算每门课程的总分和平均分,保存并输出。
找出并输出每门课程的最高分及其学号。
思考题:中间第5行插入一个同学的成绩
思考题:如果需要保存并打印每个同学的名字,应如何处理?
9-9.c:输出n行的杨辉三角形
附注:实验为博主刚学C语言时候老师布置的作业,发表出来,仅供做题与参考。