内容正文:
编程语言基础——C语言
5.4 数组的应用举例
第5章 数组
高等教育出版社
教学目标
一
灵活掌握一维和二维数组的应用。
1
2
灵活掌握字符数组的应用。
3
选择合适的数组编写程序。
教学重难点
二
灵活应用各种数组。
1
2
选择合适的数组编写程序。
导入新课
三
想一想:
前边我们学过的数组有哪些?实际生活中我们又是如何利用数据解决一些实际问题的?
导入新课
三
数学黑洞问题
取任意一个4位数(4个数字均为同一个数的除外),把四个数字对调后组成一个最大的数和一个最小的数,两数相减得出一个新数,重复以上过程,至多7次,就会得到6174,且不再变化。
导入新课
三
例如:(以7642为例)
7642-2467=5175
7551-1557=5994
9954-4599=5355
5553-3555=1998
9981-1899=8082
8820-288=8532
8532-2358=6174
7641-1467=6174
那我们如何利用数组为它编写程序呢?
新知讲授
四
例5-4 找出10个学生中成绩低于平均成绩的人数并输出。
分析:可以定义一个长度为10的实型数组scores[ ]来存储10个学生的成绩。先计算出平均成绩,然后统计成绩低于平均成绩的人数。
程序如下:
#include <stdio.h>
main( )
{
int i, count= 0; // count存储人数,初始化为0
float scores[ 10], ave=0.0; // ave存储平均成绩,初始化为0.0
printf("输入10个学生成绩:
");
for(i=0;i<10;i++ )
{
scanf( "%f", &scores[ i]);
ave += scores[i]; //累加成绩求总分
}
ave/= 10; //求出平均成绩
printf( "
平均成绩: %.1f
", ave );
数组的应用
5.4.1
for(i=0;i<10;i++)
if( scores[i]< ave ) count++; //若低于平均成绩,计数器加1
print( "低于平均成绩的人数: %2d", count );
getch( );
}
数组的应用
5.4.1
运行结果如图所示:
例5-5 输入5个学生的3门课程成绩,求每个学生的平均成绩和每门课程的平均成绩。
分析:由于每个学生对应于一个平均成绩,需要使用一个一维数组(长度为5)存储这些平均成绩。计算时,只需对每个学生求总分,然后除以3即可得平均成绩。同理,定义一个一维数组(长度为3)来存储每门课程的平均成绩,先求每门课程的总分,再除以5可得平均成绩。
具体程序如下:
#include <stdio.h>
main( )
{ float scores[5][3] avestu[5], avecourse[3];
int i, j;
printf( " 输入5个学生的3门课程成绩:\ln" );
for(i=0;i<5;i++)
for(j=0;j<3;j++) .
scanf( "%f", &scores[i][j]);
for(i=0;i<5;i++) //求学生平均成绩
{ avestu[i]=0; //清零
for(j=0;j<3;j++) //求总分
数组的应用
5.4.1
例5-5 输入5个学生的3门课程成绩,求每个学生的平均成绩和每门课程的平均成绩。
avestu[i]+= scores[i][j];
avestu[i]/= 3; //求平均成绩
}
printf( "
输出每个学生的平均成绩:
");
for(i=0;i<5;i++)
pr