内容正文:
6单元
数组
C语言程序设计任务驱动式 教程(第2版)
工业和信息化人才培养规划教材
国家精品资源共享课程配套教材
高职高专计算机系列
人 民 邮 电 出 版 社
在程序中,我们会经常存储一些相同类型的数据。例如,计算一个班10名同学某门课程的成绩,并且计算总分和平均分,如果不需要记录学生的成绩,只计算总分和平均分,那么用循环语句求10次和最后求平均分即可。但是如果需要输入学生成绩,并记录,然后输出每个人的成绩,那么按照以前的编程方法,要给每个同学定义成绩变量,如果一个班有50名同学,这样就太繁琐了。通过分析可以看出,所有这些变量的类型都一样,不一样的是分值,因此,可以把这些成绩都组织在一起,定义一组相同类型的变量存储不同的成绩。
数组是相同类型数据的有序集合,即数组由若干数组元素组成,其中的所有元素都属于同一个数据类型,且它们的先后顺序是确定的。数组中的元素称为数组元素,也称为下标变量。
问题引入
Question Introduction
目录导航
任务1 学生成绩存储—一维数组的定义与输入输出
任务2 学生成绩计算与查找—数组元素的引用
思考与训练
单元小结
任务3 学生成绩排序—数组的应用
任务4 多门课程学生成绩的存储—二维数组的定义与输入输出
任务5 多门课程学生成绩计算与查找—二维数组元素的引用
任务6 密码加密—字符数组、字符串
任务1 学生成绩存储—一维数组的定义与输入输出
通过编程输入并存储一个班10名同学某门课程的成绩,然后输出每名同学的成绩。
工作任务
任务1 学生成绩存储—一维数组的定义与输入输出
思路指导
定义数组:scr[10]。
输入:循环输入存储每个数组元素。
输出:循环输出每个数组元素。
(一)定义一维数组
相关知识
1.while语句的语法格式
定义一维数组的格式为
类型说明 数组名[整型常量表达式];
例如,int scr[10];定义了一个一维数组,数组名称为scr,数组中数组元素的个数为10,数组元素的类型为整型,可用的下标范围为0~9。
(一)定义一维数组
2.说明
(1)数组名:命名遵循标识符的命名规则。本任务中数组名称为scr。
(2)整型常量表达式:表示数组元素的个数(数组的长度)。可以是整型常量或符号常量,不允许是变量。整型常量表达式在说明数组元素个数的同时,也确定了数组元素下标的范围,即0~(整型常量表达式−1)。
(3)类型说明:是指数据元素的类型,可以是基本数据类型,也可以是构造数据类型。类型说明确定每个数据占用的内存字节数。如整型占2字节,实型占4字节,双精度占8字节,字符占1字节。本任务中数组元素是整型,每个元素占2字节,因为有10个数组元素,所以数组scr占用20字节。
(二)一维数组元素的引用
数组必须先定义,然后使用。C语言规定只能逐个引用数组元素而不能一次引用整个数组。
数组元素引用形式为
数组名[下标]
下标可以是整型常量或整型表达式。
任务1 学生成绩存储—一维数组的定义与输入输出
任务实施
1.流程图
程序流程图如图所示。
2.程序代码
#include <stdio.h>
void main()
{ int scr[10], i; //定义成绩数组str
for(i=0;i<10;i++) //循环输入成绩
{
printf("请输入第%d个元素的值",i+1);
scanf("%d",&scr[i]); //输入数组元素的值
}
printf("十名同学的成绩:");
for(i=0;i<10;i++) //循环输出成绩
printf("%-4d",scr[i]);
}
任务1 学生成绩存储—一维数组的定义与输入输出
任务实施
程序运行结果如图所示。
图 任务运行结果
任务1 学生成绩存储—一维数组的定义与输入输出
特别提示
(1)在同一个类型说明语句中可以同时定义几个数组,如int a[10],b[10];。
(2)每个数组元素占用一个存储单元,数组的输入和输出、计算是对单个数组元素进行的。
(3)数组元素的下标可以是表达式。
(4)C语言编译程序为数组分配了一段连续的存储空间。
(5)C语言规定,数组名是数组的首地址,即a与&a[0]等价。
目录导航
任务1 学生成绩存储—一维数组的定义与输入输出
任务2 学生成绩计算与查找—数组元素的引用
思考与训练
单元小结
任务3 学生成绩排序—数组的应用
任务4 多门课程学生成绩的存