内容正文:
C 语言程序设计
2023
翻转课堂实用教程
7.1 一维数组
1
2
3
4
导入数组
导入案例
数组的定义
引用
初始化
存储方式
知识点
数组的使用案例
案例分析
练习数组的使用
练习题
讲解本节的主要内容,方便学生的学习。
导入案例(1)
案例7.1.1:输入5个整数,分别表示5名应届毕业生的月薪,计算并输出这5名应届毕业生的平均月薪(小数点后保留2位小数)。
解决步骤:
(1)采用循环求和方式计算出总和,
(2)然后除以个数就可以得到平均值。
注意:在计算平均数时建议用实数类型保存和,这样在用和除以个数时得到的均值也是实数。
导入案例(1)
#include<stdio.h>
int main(){
int i,salary;
double average, sum = 0;
for( i = 0; i <5 ; i++ ){
scanf ( "%d", &salary );
sum = sum + salary;
}
average = sum / 5;
printf("%.2f",average);
return 0;
}
输入数据:
7000 8100 7500 6900 7300
输出数据:
7360.00
运行结果
案例7.1.1程序代码
导入案例(2)
案例7.1.2:输入5个整数,分别表示5名应届毕业生的月薪,计算并输出这5名应届毕业生的平均月薪(小数点后保留两位小数),以及高于平均月薪的工资数。
本例题要求输出所有大于平均月薪的工资数,此时就需要保存输入的所有月薪,等平均值月薪计算出来后,再将高于平均月薪的工资数输出。
导入案例(2)
int main(){
int i,salary1,salary2,salary3,salary4,salary5;
double average, sum = 0;
scanf ( "%d", &salary1);
scanf ( "%d", &salary2 );
scanf ( "%d", &salary 3);
scanf ( "%d", &salary 4);
scanf ( "%d", &salary 5);
sum = sum + salary1+ salary2+ salary3+ salary4+ salary5;
average = sum / 5;
printf("平均月薪为:%.2f
",average);
printf("高于平均月薪的工资数为:");
if(salary1>average)
printf("%d
",salary1);
if(salary2>average)
printf("%d
",salary2);
if(salary3>average)
printf("%d
",salary3);
if(salary4>average)
printf("%d
",salary4);
if(salary5>average)
printf("%d
",salary5);
return 0;
}
输入:
7000 6500 7100 6800 7000
输出:
平均月薪为:6880.00
高于平均月薪的工资数为:
7000
7100
7000
运行结果
案例7.1.2程序代码
如果此时应届毕业生人数由5名变为10名、100名,如何解决?
如果此时应届毕业生人数由5名变为10名、100名,如何解决?
按照案例7.1.2的解题思路,难道需要定义100个整型变量来存储这些月薪?还需要重复读取100个变量,并且重复使用100个分支语句进行判断?
这样做显然是不现实的,一方面如此多的变量不好维护,容易出错;另一方面对所有变量的处理都是相同的,存在很多冗余的代码。那对于若干类型相同的、并且需要统一的重复处理的数据,C语言中要如何存储和处理呢?
依次引入数组的概念。
7.1.1一维数组知识点
数组:若干相同类型的数据的集合
数组中每一个数据叫做数组元素。
元素均具有相同的数据类型,具有统一的变量名即数组名,并用不同编号来区分每个元素。
数组的概念可以等同于班级中的小组,假如小组1有10名学生,为这10名学生依次编号为0、1、2...9,用小组1的0号学生、小组1的1号学生…小组1的9号学生就可以找到这10名学生。
1、一维数组的定义
一维数组的定义方式为:
数据类型名 数组名[数组长度];
举例:
//定义一个含有10个整型数据的数组array
int array[10] ;
//定义一个含有20个双精度浮点型数据的数组num
double num[20];
//定义一个含有30个字符型数据