第一个程序。一维数组的使用。
1.定义一维数组存储整个班级学生的考试成绩;
2.遍历数组,输入成绩;
3.遍历数组,进行统计.统计出考试成绩的平均分、最高分、最低分。
4.输出结果。
(可考虑参考课本选择排序的例子,定义数组时用一个较大元素个数MaxN,在输入成绩时才确定实际的个数n。注意,本实验不需要排序)
参考,
#include <iomanip>
#include <iostream>
using namespace std;
#define MaxN 1000 // 最大学生人数
int getMaxScore(int a[], size_t n)
{
int res = a[0];
for (size_t i = 1; i < n; ++i) {
res = max(res, a[i]);
}
return res;
}
int getMinScore(int a[], size_t n)
{
int res = a[0];
for (size_t i = 1; i < n; ++i) {
res = min(res, a[i]);
}
return res;
}
double getAverageScore(int a[], size_t n)
{
int sum = 0;
for (size_t i = 0; i < n; ++i) {
sum += a[i];
}
return ((double)sum) / n;
}
int main()
{
int scores[MaxN] = { 0 }; // 存放某门课全班成绩
int n; // 学生人数
cin >> n;
if (n <= 0)
{
cerr << "invalid student number: " << n << endl;
exit(1);
}
// 输入全班学生成绩
int i = 0;
int m = n;
while (m-- > 0)
{
cin >> scores[i++];
}
int maxscore = getMaxScore(scores, i); // 最高分数
int minscore = getMinScore(scores, i); // 最低分数
double avgscore = getMinScore(scores, i); // 平均分
cout << maxscore << endl;
cout << minscore << endl;
cout << fixed << setprecision(2) << avgscore << endl; // 保留2位小数点
cout.unsetf(ios::fixed); // 取消已设格式定义
return 0;
}
#include<stdio.h>
#define MaxN 100
void main()
{
int i,sum=0,max=0,min=100,c=[MaxN];
float ave;
for(i=0;i<MaxN;i++)
{
scanf("%d",&c[i]);
sum=sum+c[i];
if(c[i]>max)
max=c[i];
if(c[i]<min)
min=c[i];
}
ave=(float)sum/10;
printf(“平均分:%f,最高分:%d,最低分:%d\n”,ave,max,min);
}