4.12一维数组元素的引用 维数组下标变量的格式 数组名[下标] 例如: int score[10=0, 1=1 score scoreline score[10] 注意:C语言不检查数组边界,程序可以在数组两边越界,写入 其他变量,甚至写入程序代码段。如果使用了负数下标或超 过数组长度的下标,C仍计算这个下标的位置,并使用它 在运行和编译时也没有任何错误提示,程序继续运行,并访 问别的变量的存储空间或根本不存在的存储空间
4.1.2 一维数组元素的引用 一维数组下标变量的格式 数组名[下标] 例如: int score[10]={0}, i=1; score[1]; score[i]; score[10]; 注意:C语言不检查数组边界,程序可以在数组两边越界,写入 其他变量,甚至写入程序代码段。如果使用了负数下标或超 过数组长度的下标,C仍计算这个下标的位置,并使用它, 在运行和编译时也没有任何错误提示,程序继续运行,并访 问别的变量的存储空间或根本不存在的存储空间
4.13一维数组的应用 Ca. C: \windows\ system32\cmd.exe 任务4.1算法分析 晴输入第0位学生的成绩:39 先用键盘输入10位学生的请输入第1位学生的成绩:95 成绩,分别存放到coe请输入第2位学生的成绩:78 数组的相应下标变量中, 输入第3位学生的成绩:86 并找出最高分, 请输入第4位学生的成绩:89 请输入第5位学生的成绩:98 然后再依次将10位学生的请入第6位学生的成绩:83 成绩与最高分比较,输出输入第7位学生的成绩:98 请输入第8位学生的成绩:78 得分为最高分的学生的序请输入第9位学生的成绩:98 号 本班最高分为98 最后输出获得最高分的学得到最高分的学生序号为 生人数。 5 9 共有3位学生得到最高分 请按任意键继续
4.1.3 一维数组的应用 任务4.1算法分析 • 先用键盘输入10位学生的 成绩,分别存放到score 数组的相应下标变量中, 并找出最高分, • 然后再依次将10位学生的 成绩与最高分比较,输出 得分为最高分的学生的序 号, • 最后输出获得最高分的学 生人数
4.13一维数组的应用 任务4.1程序4_1.cpp 初始化最高分3060 变量定义及数组元素输入 初始化最高分学生数 max Student=0 const int n=10使倍变量定议学生人数 int score[n] /成输笔组位学的盈元索 int maxScore=0;//串,到剂 int max Student =0 到最高分的学生大数 是 int 1. 自环示量 maxScore=score[i] for(i=0: i<n: i++ 循环输出最高分 cout<"请输入第<<i√学生簡成:" cin> scoreline:/第学倒的减绩 if(maxScore< score[ilE 是 //如果第位学生的成绩高于原最量雷学生数增1 maxScore= score[il;// 改李生序号1 //结束循环输出最高分学生数
任务4.1 程序4_1.cpp 变量定义及数组元素输入 const int n = 10; // 使用常变量定义学生人数 int score[n]; // 定义成绩数组,有n个整型元素 int maxScore = 0; // 最高分,并初始化为0 int maxStudent = 0; // 得到最高分的学生人数 int i; // 循环变量 for(i = 0; i < n; i++) // 计数循环 { // 开始循环 cout<<"请输入第"<<i<<"位学生的成绩:"; cin>>score[i]; // 输入第i位学生的成绩 if(maxScore < score[i]) { // 如果第i位学生的成绩高于原最高分 maxScore = score[i]; // 修改最高分 } } // 结束循环 4.1.3 一维数组的应用
4.13一维数组的应用 任务4.1程序4_1.cpp 初始化最高分3060 求最高分人数 初始化最高分学生数 max Student=0 for(i=0: i<n: i++) 啡墩循耷i+) 瑞第i位学生的成绩core[i] if(score maxscore score li]>maxScore /如了学生的成绩等于最高分 是 maxStt+ cout<<i<<e 输出该生序号420e1 输出最高分 生 cout“共有” KmaxStuder,生得到最庸分g 是 最高分学生数增1 输出学生序号i 输出最高分学生数
4.1.3 一维数组的应用 任务4.1 程序4_1.cpp 求最高分人数 for(i = 0; i < n; i++) // 计数循环 { // 循环开始 if(score[i] == maxScore) { // 如果第i位学生的成绩等于最高分 maxStudent++; // 得最高分的学生人数增1 cout<<i<<endl; // 输出该生序号 } } // 循环结束 cout<<"共有"<<maxStudent<<"位学生得到最高分"<<endl;
4.13一维数组的应用 例4.1有10位学生的成绩存放在数组 score中,从键盘输入1个 数,查找这个成绩是否在数组中,如果在,输出其下标, 如果不在,输出0。数组的下标表示第位学生的成绩,数 组的下标0处不存储成绩。 Gi. C:\windows\system32\cmd. exe 学生成绩:808284889092949698 请输入待查找的学生成绩:90 查找成功,待查找成绩是第6位同学的成绩 请按任意键继续
4.1.3 一维数组的应用 例4.1 有10位学生的成绩存放在数组score中,从键盘输入1个 数,查找这个成绩是否在数组中,如果在,输出其下标, 如果不在,输出0。数组的下标i表示第i位学生的成绩,数 组的下标0处不存储成绩。 算法分析: • 将第i位学生的成绩存放到下标i处,下标0处的数组元素就 不存放具体的成绩信息。这样,学生的序号和数组下标之 间的对应关系更自然 • 可采用计数循环,依次将数组元素与输入的数进行比较, 如果相等则终止循环。如果元素比较完还未找到输入的数, 则输出0