C语言程序设计:数组长度错误和单值初始化问题解决2017-11-07

需积分: 0 0 下载量 149 浏览量 更新于2023-12-23 收藏 854KB PDF 举报
&score1); scanf("%d", &score2); … scanf("%d", &score30); 这无疑是太繁琐了,且不利于程序的维护。这时,我们不妨考虑数组的概念。数组是用来存储相同类型的多个数据的集合,它的声明形式是: type array_name[array_size]; 其中 type 是数据类型,array_name 是数组的名字,array_size 是数组的长度。例如,用数组声明得分变量的语句是这样的: int score[30]; 这样,一条语句就声明了 30 个学生的得分变量,并且它们都是相互对应的。对这 30 个学生成绩信息进行初始化时也是很方便的,例如如下语句可以把所有学生成绩初始化为零: for(i=0; i<30; i++) score[i]=0; 作业1:用数组实现选择法排序问题: 用 C 语言编写一个程序,实现对一个整数数组进行选择法排序,并输出结果。 2.数组查找;1 数组 7.2 问题引入 在生活和各种计算机程序中,检索数组中特定元素是一个常见的操作。例如,在考试成绩的统计程序中,要查找某个学生的成绩或者某个成绩对应的学生的学号,这时需要在得分数组中进行查找;真正设计这样的程序时,实际上就面临这样一个问题:如何通过成绩信息得到学生的学号,或者如何通过学生的学号得到他的成绩。这样一个问题是数组查找问题。 问题是这样的:有一个学生学号数组进行的声明是这样的: int number[30]; 学生成绩数组进行的声明是这样的: int score[30]; 现在给定一个学生学号,要求写一个函数从 number 数组中找到这个学号,并输出其对应的得分。 解题的思路主要分为两步: 从键盘上输入学生的学号; 查找相应的学号并输出其所对应的得分。 解题的关键是要写出一个能实现查找学生学号、并输出其所对应得分的函数。这是一个在数组中查找特定元素的问题。在本题中,查找学生学号并输出其所对应的得分的函数代码如下: int findScore(int no, int number[], int score[], int n) { int i; for(i=0; i<n; i++) { if(no==number[i]) return score[i]; } return -1; } 这样,就可以很容易地找到一个学生的得分。 作业2:实现数组查找问题 用 C 语言编写一个函数,实现根据学生的学号查找其对应的得分。 3.数组的杂糅运用 在学习了数组的基本概念、用法和相关的问题后,现在我们以一个实际问题来结束这一章。问题是这样的: 有四个班的学生十六个人的成绩。用程序设计打印输出: 各个班的总分、平均分; 各个学生的总分、平均分。 解决这个问题至少要用一个一维数组和一个二维数组,涉及的问题有数组元素的初始化、数组元素的引用、数组元素内容的修改、数组元素内容的计算等。此外,在解决这一问题时,还可能要设计函数,进行一系列的查找、计算、打印等操作。在这个问题中,我们要设计的函数应该有以下几种: 对一个一维数组的元素进行初始化; 对一个二维数组的元素进行初始化; 求一个一维数组的和与平均值; 求一个二维数组的和与平均值; 打印输出一个一维数组; 打印输出一个二维数组。 在本节中,总结并熟悉以上问题解决的方法和技巧,是我们的学习目标。在本节的作业中,我们将针对以上问题设计和编写“函数”来解决这个问题。 总结: 本章通过三个问题讨论了数组的更多应用问题。这些问题从简单的数组初始化、数组的查找到数组的运算全面地训练了学生处理数组的能力。通过这些例题的学习,旨在提高对数组应用的理解,如声明数组、对数组元素赋值、引用数组元素、用下标引用数组元素、用 for 循环语句处理数组元素、用标准库函数对数组进行处理等技能。在上面的作业中,对各个类型的问题设计并实现了相应的问题基本操作的函数,从而对数组应用技巧的学习也更上了一个台阶。这样的学习方式有助于提高学生对 C 语言程序设计的综合能力,对程序解题的能力也会有所提高。