- 1、本文档共77页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 本章要点 主要内容 6.1 为什么要用数组 6.2 定义和引用一维数组 6.3 二维数组的定义和引用 6.4 字符数组 6.5 提高部分 6.1 为什么要用数组 6.3 二维数组的定义和引用 6.3.1 定义二维数组 6.3 二维数组的定义和引用6.3.2 引用二维数组的元素 关于strcpy函数的几点说明 6.3 二维数组的定义和引用 6.3.4 二维数组程序举例 #include stdio.h void 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=1;i++) { for (j=0;j=2;j++) { 编写程序 printf(″%5d″,a[i][j]); b[j][i]=a[i][j]; } printf(″\n″); } printf(″array b:\n″); for (i=0;i=2;i++) { for(j=0;j=1;j++) printf(%5d″,b[i][j]); printf(″\n″); } } /*程序结束*/ 运行结果如下: array a: 1 2 3 4 5 6 array b: 1 4 2 5 ??? 3? 6 说明:如果把第7行:“for (i=0;i2;i++)”改为“for (i=0;i=2;i++)”,意味着什么?结果会怎样? 例题 6.5 有一个班30个学生,己知每个学生有5门课的成绩,要求输出平均成绩最高的学生的成绩以及该学生的序号。 解题思路 对本题而言,宜用二维数组,用一行中的各元素存放一个学生的成绩,即行代表学生,列代表一门课的成绩。要存放30个学生5门课的成绩,要用一个30*5的二维数组。另外,由于要比较各人的平均成绩,因此,对每个学生来说,应该存放6个数据,每人平均成绩要计算出来,并存放在数组中。这样,数组的大小就应该是30*6。 设计算法:(1)求每人平均成绩,放在数组每一行的最后一列中; (2)找出最高的平均分,和该学生的序号; (3)输出最高的平均分,和该学生的序号。 程序如下: #include stdio.h void main() {int i,j,max_i; float sum,max=0; float s[6][6]={{78,82,93,74,65},{91,82,72,76,67},{100,90,85,72,98}, {67,89,90,65,78},{77,88,99,45,89},{78,89,76,99.97}}; for (i=0;i5;i++) {sum=0; /* 使sum初值为0 */ for (j=0;j5;j++) sum=sum+s[i][j]; /* 累加序号为j的学生各门课的成绩 * s[i][5]=sum/5;} /* 求序号为j的学生各门课的的平均分 */ 编写程序 for (i=0;i5;i++) if (s[i][5]max) /* 逐个将5个学生的平均分与max比较 */ {max=s[i][5];max_i=i;} /* 如果比max大,就用序号为i的学生的平均分取代max的原值,将i的当前值保存在max_I中 */ printf(stu_order=%d\nmax=%7.2f\n,max_i,max); /* 输出最高平均分和该生的序号i */ } 运行结果如下: max=10,row=2,colum=1 说明: 1、在对数组初始化时,只对各行的前5列赋初值,第6列默认为0。 2、注意第一个for语句的范围。请思考能否不要“sum=0;”这一行?或者把这一句改放到for语句的前面? 3、第三个for语句内嵌了一个if语句,用来将5个学生的平均分逐个与max比较 6.4 字符数组6.4.1 定义字符数组及对其初始化 定义方法与前面介绍的类似。例如: char c[10]; c[0]=′I′;c[1]=′ ′;
文档评论(0)