《c语言16-2》由会员分享,可在线阅读,更多相关《c语言16-2(19页珍藏版)》请在金锄头文库上搜索。
1、C C语言程序设计语言程序设计第第6 6章章 数组数组6.1 一维数组的定义和引用 二、一维数组的引用二、一维数组的引用 例6.1 一维数组的引用。 main( )int i,a5;for(i=0;imax) max=marki;else if (marki=60) count+;printf(“及格人数为:%d“, count); 例6.5 输入10个学生的C语言考试成绩,用选择法将成绩由 高到低排序,即根据考试成绩排出名次。 程序分析:805683799158648590608056837991586485906083568079915864859060835680799158648590
2、6083568079915864859060915680798358648590609156807983586485906091568079835864859060915680798358648590609156807983586485906091568079835864859060第一轮第二轮91568079835864859060918056798358648590609180567983586485906091835679805864859060918356798058648590609183567980586485906091835679805864859060918556798058
3、64839060918556798058648390609190567980586483856091905679805864838560单单一科目成绩(一维数组)的输入、输出和处理。一科目成绩(一维数组)的输入、输出和处理。 例6.5 输入10个学生的C语言考试成绩,用选择法将成绩由高到低排序 ,即根据考试成绩排出名次。 #define N 10 main( )int markN,t;int i,j;printf(“输入%d个学生的考试成绩:n“,N);for (i=0 ; imarki)t=marki;marki=markj;markj=t; printf(“成绩由高到低排序后的结果为:n“
4、);for (i=0;i10;i+)printf(“%d “,marki); 课堂练习 P155 3.填空并测试(1)6.2 二维数组的定义和引用 一、二维数组的定义一、二维数组的定义 定义二维数组的一般形式:类型说明符类型说明符 数组名数组名 常量表达式常量表达式11常量表达式常量表达式2;2;例如:float a510 ; 说明: (1)数组名后的常量表达式的个数称为数组的维数。每个常量 表达式必须用方括号括起来 。 (2)二维数组中元素的个数为:常量表达式1 常量表达式2 。 (3)如果常量表达1的值为n,常量表达式2的值为m,则二维数 组中第一个元素的下标为 00,最后一个元素的下标为
5、 n- 1m-1 。 (4)一维数组通常用来表示一行或一列数据,而二维数组则通 常用来表示呈二维表排列(即多行多列)的一组相关数据。 6.2 二维数组的定义和引用 一、二维数组的定义一、二维数组的定义 例如,存放学生成绩的数据表:学生姓名高等数学成绩大学英语成绩C语言成绩林雨晨847892王依萍808581冯凌云929588牟思娴738287用一个二维数组存放该数据表中的数据,则可定义如下二维数组:int mark 43 ; 该数组中的各个元素分别为:mark 00 mark 01 mark 02mark 10 mark 11 mark 12mark 20 mark 21 mark 22mar
6、k 30 mark 31 mark 32存放第1个学生的三门科目成绩 存放第2个学生的三门科目成绩 存放第3个学生的三门科目成绩 存放第4个学生的三门科目成绩 6.2 二维数组的定义和引用 一、二维数组的定义一、二维数组的定义 二维数组mark中 的各个元素在机内 的存贮顺序:mark00 mark01 mark02 mark10 mark11 mark12 . . . mark30 mark31 mark326.2 二维数组的定义和引用 二、二维数组的引用二、二维数组的引用 引用二维数组的一般形式:数组名数组名 下标下标11下标下标2;2;说明: (1)与一维数组相同,二维数组元素的下标也可
7、以是任何整型 常量、整型变量或返回整型量的表达式。 (2)如果二维数组第一维的长度为n,第二维的长度为m,则引 用该二维数组的元素时,第一个下标的范围为0 n-1,第二个下 标的范围为0 m-1。 6.2 二维数组的定义和引用 二、二维数组的引用二、二维数组的引用 例6.6 二维数组的引用。 main( )int a34;int i,j;printf(“输入二维数组中各元素的值:n“);for(i=0;i3;i+) /* 变量i表示第一维下标的变化 */for(j=0;j4;j+) /* 变量j表示第二维下标的变化 */scanf(“%d“,for(i=0;i3;i+) /* 顺序输出二维数组
8、中各个元素的值 */for(j=0;j4;j+)printf(“%5d“,aij);printf(“n“); 运行结果:输入二维数组中各元素的值: 67 86 58 65 89 98 72 75 80 89 50 72 67 86 58 6589 98 72 7580 89 50 72三、二维数组的初始化三、二维数组的初始化 方法:(1)分行给二维数组赋初值。例如:int b34=1,2,3,4,5,6,7,8,9,10,11,12;(2)也可以把所有的数据都写在一对花括号内。例如:int b34=1,2,3,4,5,6,7,8,9,10,11,12;(3)可以只对二维数组的部分元素赋初值。例
9、如:int b34=1,2,3;(4)如果对二维数组的全部元素赋初值,则定义二维数组时, 第一维的长度可以省略,但第二维的长度不能省。例如:int b34=1,2,3,4,5,6,7,8,9,10,11,12;可以写成:int b 4=1,2,3,4,5,6,7,8,9,10,11,12; 二、二维数组的引用二、二维数组的引用 例6.7 将下表所示的学生成绩赋给数组mark ,并依次显示出每个学生各门学科的成绩。学生姓名高等数学成绩大学英语成绩C语言成绩 林雨晨847892 王依萍808581 冯凌云929588 牟思娴738287二、二维数组的引用二、二维数组的引用 源程序: main( )
10、int mark43=81,76,90,94,90,85,78,65,58,79,83,70;int i,j;printf(“%12s%12s%12sn“,“语文成绩“,“数学成绩“,“C语言成绩“);for(i=0;i4;i+)for(j=0;j3;j+)printf(“%12d“,markij);printf(“n“); 运行结果:语文成绩 数学成绩 C语言成绩81 76 9094 90 8578 65 5879 83 70例6.8 分别输入4个学生的高等数学成绩、大学英语成绩和C语言成绩,求每个学生的总成绩和平均成绩。 #define N 4 main( )int markN3,sumN
11、; /* 数组mark存放学生成绩,数组sum存放学生的总成绩 */int i,j;clrscr(); /* 清屏 */printf(“在对应的序号后输入每个学生每门课程的成绩,以回车结束n“);printf(“%10s%10s%10s%10sn“,“学生序号“,“高等数学“,“大学英语“,“C语言“);for (i=0;iN;i+)sumi=0;printf(“%8d“,i+1); /* 输出学生序号 */for (j=0;j3;j+)gotoxy(8+(j+1)*10,3+i); /* 将光标定位到坐标(8+(j+1)*10,3+i) 处 */scanf(“%d“, /* 输入各科成绩 *
12、/sumi=sumi+markij; /* 求总成绩 */printf(“n%10s%10s%10sn“,“学生序号“,“总成绩“,“平均成绩“);for (i=0;iN;i+)printf(“%10d%10d%10.2fn“,i+1,sumi,sumi/3.0); 运行结果: 在对应的序号后输入每个学生每门课程的成绩,以回 车结束学生序号 高等数学 大学英语 C语言1 82 76 802 78 90 813 87 88 834 60 76 78学生序号 总成绩 平均成绩1 238 79.332 249 83.003 258 86.004 214 71.33习题 P1603. P1614.(1)、(3)