第6章数组 数组一最简单的构造类型。 教学目的: 掌握数组的定义、引用与应用,字符数组的整体 操作。 了解常用字符串处理函数。 2024/10/28
2024/10/28 1 数组──最简单的构造类型。 教学目的: 掌握数组的定义、引用与应用,字符数组的整体 操作。 了解常用字符串处理函数。 第6章 数 组
教学内容: 6.11维数组 6.22维数组 6.3字符数组与字符串 6.4常用的字符串处理函数 6.5应用举例 本章要点 本章作业与上机实践 2024/10/28 2
2024/10/28 2 教学内容: 6.1 1维数组 6.2 2维数组 6.3 字符数组与字符串 6.4 常用的字符串处理函数 6.5 应用举例 本章要点 本章作业与上机实践
6.11维数组 6.1.1定义与引用 「案例6.11从键盘上输入某学科竞赛组6名成员的 成绩(整数),求平均成绩、并找出最高分和最低 分。 2024/10/28 3
2024/10/28 3 6.1 1维数组 6.1.1 定义与引用 [案例6.1] 从键盘上输入某学科竞赛组6名成员的 成绩(整数),求平均成绩、并找出最高分和最低 分
算法设计要点: (1)平均成绩=(score[0]+.+score[5])/6; (2)将第1个人的成绩预置为最高分max和最低 分min; (3)用其余5人的成绩依次与max和min比较: 如果某人成绩>max,则更新max;如果某人成 绩<min,则更新min。 2024/10/28 4
2024/10/28 4 算法设计要点: (1)平均成绩= (score[0]+.+score[5]) / 6; (2)将第1个人的成绩预置为最高分max和最低 分min; (3)用其余5人的成绩依次与max和min比较: 如果某人成绩 >max,则更新max;如果某人成 绩<min,则更新min
#include "stdio.h" #include "conio.h" #define N6/*定义符号常量N(分数个数)*/ void main() int score[N],loop,sum,max,min; /*输入N个成绩*/ printf("Please input %d scores(departed by space):"N); for(loop=0;loop<N;loop++) scanf("%d",&score[loopl), 2024/10/28 5
2024/10/28 5 #include "stdio.h" #include "conio.h" #define N 6 /*定义符号常量N(分数个数)*/ void main() { int score[N], loop, sum, max, min; /*输入N个成绩*/ printf(" Please input %d scores(departed by space): ", N); for( loop = 0; loop < N; loop++) scanf("%d", &score[loop]);
/*求分数合计、最高分和最低分*/ sum max min score[0]; /*预置累计和、最高、最低分*/ for(loop=1;loopmax)max score[loop]; if (score[loop]<min)min score[loop]; } /*输出结果*/ printf("\n average=%4.1f max =%d,min =%d n", (float)sum/N,max,min); getch(); 2024/10/28 6
2024/10/28 6 /*求分数合计、最高分和最低分*/ sum = max = min = score[0]; /*预置累计和、最高、最低分*/ for(loop = 1; loop max) max = score[loop]; if (score[loop] < min) min = score[loop]; } /*输出结果*/ printf("\n average = %4.1f, max = %d, min = %d\n", (float)sum / N, max, min); getch(); }
程序运行情况举例: Please input6 scores(departed by space):64 72 85 80 90 78 average 78.2,max =90,min =64 2024/10/28 7
2024/10/28 7 程序运行情况举例: Please input 6 scores (departed by space): 64 72 85 80 90 78↙ average = 78.2, max = 90, min = 64
1.定义与存储 数组必须先定义、后使佣。 语法规则所要求的, 不是可选项的描述符。 数据类型数组名[常量表达式][,数组名2[常量 表达式2].]; (1)“数据类型”是指数组元素的数据类型。 (2)数组名,必须遵循标识符命名规则;存放的 是一个地址常量,它代表整个数组的首地址。 (3)“常量表达式”可以是常数和符号常量、不能 包含变量,其值指数组元素个数(又称数组长度)。 2024/10/28 8
2024/10/28 8 1.定义与存储 数组必须先定义、后使用。 数据类型 数组名[常量表达式][,数组名2[常量 表达式2].]; (1) “数据类型”是指数组元素的数据类型。 (2) 数组名,必须遵循标识符命名规则;存放的 是一个地址常量,它代表整个数组的首地址。 (3) “常量表达式” 可以是常数和符号常量、不能 包含变量,其值指数组元素个数(又称数组长度) 。 语法规则所要求的, 不是可选项的描述符
(4)数组元素下标,从0 开始顺序编号,按下标顺序 数组名[0] 占用一段连续的存储单元, 数组名[1] 如右图所示。 ●0000· 数组名[n-l] 2024/10/28 9
2024/10/28 9 (4)数组元素下标,从0 开始顺序编号,按下标顺序 占用一段连续的存储单元, 如右图所示。 数组名[0] 数组名[1] . 数组名[n-1]
2.数组元素引用 数组名[下标表达式] (1)“下标表达式”可以是任何非负整型数据,合 法取值范围是0-(元素个数-1)。 注意:在引用数组元素时,系统并不检验下标是 否越界。 例如,上例中引用score[10们,其下标已经越界, 但系统并不提示出错。 2024/10/28 10
2024/10/28 10 2.数组元素引用 数组名[下标表达式] (1) “下标表达式”可以是任何非负整型数据,合 法取值范围是0-(元素个数-1)。 注意:在引用数组元素时,系统并不检验下标是 否越界。 例如,上例中引用score[10],其下标已经越界, 但系统并不提示出错