C语言程序设计 第四章简单构造数据类型 济南大学
C语言程序设计 第四章 简单构造数据类型 —————————————————————————— —————————— 济南大学
第四章简单构造数据类型 4.1一继数组的引出及使用 42二维数组的引出及使用 43字符数组 >44数组与函数 >4.5数组与指钍 >4.6字符串与指针 心U
第四章 简单构造数据类型 ➢ 4.1 一维数组的引出及使用 ➢ 4.2 二维数组的引出及使用 ➢ 4.3 字符数组 ➢ 4.4 数组与函数 ➢ 4.5 数组与指针 ➢ 4.6 字符串与指针 ——————————————————————————
4.1一維数组的引出及使用 41.1-维数组的引出 41.2一维数组的定义和引用 心U
4.1 一维数组的引出及使用 4.1.1 一维数组的引出 4.1.2 一维数组的定义和引用
4.1.1—维数组的引出 例:计算一个班40个学生C语言考试成绩的平均分,每个学生 的成绩由键盘输入,输出所有学生的考试成绩和平均成绩。 main int is 定义40个变量 float s sum=0. ave: 定义一个变量+循环,新 for〔i=0;i<40;i++) 成绩覆盖旧成绩的值; ·定义一个含有40个元素的 scanf(%of, &s); sum=sums; 数组+循环。 printi(%of”,s); ave=sum/40 printf(ave=%0.2fn", ave); 心U
4.1.1 一维数组的引出 例:计算一个班40个学生C语言考试成绩的平均分,每个学生 的成绩由键盘输入,输出所有学生的考试成绩和平均成绩。 main ( ) { int i; float s, sum=0, ave; for (i=0; i<40; i++) { scanf("%f", &s); sum=sum+s; printf(“%f ”,s); } ave=sum/40 ; printf("ave=%.2f\n", ave); } •定义40个变量; •定义一个变量+循环,新 成绩覆盖旧成绩的值; •定义一个含有40个元素的 数组+循环
main( main int i: float s sum=0. ave float s 40, sum=0, ave for(i=0;i<40;i++) for(i=0;i=39;i++) scanf(%of, &s); scanf(%f, &siD sum=sum+s; sum=sum+si printi(“%f”,) ave=sum/40 ave=sum/40 for(i=0;i<40;i++) printf(ave=%o.2fn",ave); printf( %o2f,siD; printf(ave=%0. 2fn", ave);
main ( ) { int i; float s, sum=0, ave; for(i=0; i<40; i++) { scanf("%f", &s); sum=sum+s; printf(“%f ”,s); } ave=sum/40 ; printf("ave=%.2f\n", ave); } main ( ) { int i; float s[40], sum=0, ave; for(i=0; i<=39; i++) { scanf("%f", &s[i]); sum=sum+s[i]; } ave=sum/40 ; for(i=0; i<40; i++) printf("%.2f ",s[i]); printf("ave=%.2f\n", ave); }
例:计算一个班40个学生C语言考试成绩的最高分,并输出所 有学生的考试成绩。 main( int is float s 40, max=0; for(i=0;imax) max=s]; printf("max=%.2fn", max); 心U
例:计算一个班40个学生C语言考试成绩的最高分,并输出所 有学生的考试成绩。 main ( ) { int i; float s[40], max=0; for(i=0; imax) max=s[i]; } printf(“max=%.2f\n", max); }
数组的概念 为了处理一批类型相同的数据,引入了数组 ①、数组:由相同类型的具有固定个数的元素组成的集合。 数组中的所有元素都属于同一个数据类型。 ②、每个数组元素都是一个变量,其类型为数组的类型。与 相同类型的普通变量完全一样。 ③、数组元素在数组中的序号称为下标。通过数组名和下标 来唯一的确定每一个元素
数组的概念 为了处理一批类型相同的数据,引入了数组。 ①、数组:由相同类型的具有固定个数的元素组成的集合。 数组中的所有元素都属于同一个数据类型。 ②、每个数组元素都是一个变量,其类型为数组的类型。与 相同类型的普通变量完全一样。 ③、数组元素在数组中的序号称为下标。通过数组名和下标 来唯一的确定每一个元素
4.12一维数组的定义和引用 1一维数组的定义 (1)格式:类型标识符数组名[常量表达式]; B5J: int a[10]; char c[20]; double b[5]; (2) 2)说明 ①、数组名是用户自定义标识符;数组名表示数组所占内存 区域的首地址(即第1个元素的地址); ②、数组元素的下标从0开始; 例如:数组a含10个元素:a[o,a[1,a[2],…,a9]
4.1.2 一维数组的定义和引用 1 一维数组的定义 (1)格式: 类型标识符 数组名[常量表达式]; 例: int a[10]; char c[20]; double b[5]; (2)说明: ①、数组名是用户自定义标识符;数组名表示数组所占内存 区域的首地址(即第1个元素的地址); ②、数组元素的下标从0开始; 例如:数组a包含10个元素:a[0], a[1], a[2], …, a[9]
③、常量表达式可以包含符号常量,但不能包含变量。也 即是说数组的大小在程序运行前己确定好,不依赖于程序运 行中变量值的变化而变化; 200x|0 2004x|1 #define m20 int n; ntn=5;20|x2 int a[M] scanf("%d", &n): int a[n):2012 x[31 int an 2016x4 ④、一维数组在内存中的存放: 整个数组占用一段连续的内存单元,各元 2020x15l 2024x6 素按下标顺序存放 2028x7 如: float x10]; 2032|x8 2036x19
③、常量表达式可以包含符号常量,但不能包含变量。也 即是说数组的大小在程序运行前已确定好,不依赖于程序运 行中变量值的变化而变化; #define M 20 int a[M]; int n; scanf("%d", &n); int a[n]; int n=5; int a[n]; ④、一维数组在内存中的存放: 整个数组占用一段连续的内存单元,各元 素按下标顺序存放 如:float x[10]; 2000 x[0] 2004 x[1] 2008 x[2] 2012 x[3] 2016 x[4] 2020 x[5] 2024 x[6] 2028 x[7] 2032 x[8] 2036 x[9]
2一维数组元素的引用 (1)引用形式: 数组名[下标 (2)说明: ①、下标可以是整型常量或整型表达式; 10a2]a2*3]ali ②、下标从0开始;当数组长度为N时,则数组的下标值可 以是0,1,2,……,N-1,如果用aN是错误的。 注意:若定义数组nta5;则下标范围为0-4;但如果出现 a5]=12;编译时不会指出错误,系统会将a[4]后的下一个存储 单元赋值为12,这样就可能会破坏数组以外其他变量的值, 需要特别注意! 心U
2 一维数组元素的引用 (1) 引用形式: 数组名[下标] (2) 说明: ①、下标可以是整型常量或整型表达式; a[0] a[2] a[2*3] a[i] ②、下标从0开始;当数组长度为N时,则数组的下标值可 以是0,1,2,……,N-1,如果用a[N]是错误的。 注意: 若定义数组int a[5]; 则下标范围为0--4;但如果出现 a[5]=12;编译时不会指出错误,系统会将a[4]后的下一个存储 单元赋值为12,这样就可能会破坏数组以外其他变量的值, 需要特别注意!