# 成绩分析
**问题描述**
小蓝给学生们组织了一场考试,卷面总分为100分,每个学生的得分都是一个0到100的整数。
请计算这次考试的最高分、最低分和平均分。
**输入格式**
输入的第一行包含一个整数n,表示考试人数。
接下来n行,每行包含一个0至100的整数,表示一个学生的得分。
**输出格式**
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
**样例输入**
```
7
80
92
56
74
88
99
10
```
**样例输出**
```
99
10
71.29
```
以下选项错误的是?
## aop
### before
```cpp
#include
using namespace std;
```
### after
```cpp
```
## 答案
```cpp
int main()
{
int n;
cin >> n;
int maxv = 0, minv = 100, sum = 0;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
minv = min(minv, x);
maxv = max(maxv, x);
sum += x;
}
cout << maxv << endl;
cout << minv << endl;
printf("%.2f", sum / n);
return 0;
}
```
## 选项
### A
```cpp
int main()
{
int n, max = 0, min = 0;
double sum = 0, average = 0;
cin >> n;
int a[10000];
cin >> a[0];
sum = a[0];
max = a[0];
min = a[0];
for (int i = 1; i < n; i++)
{
cin >> a[i];
if (max < a[i])
{
max = a[i];
}
if (min > a[i])
{
min = a[i];
}
sum += a[i];
}
average = sum / n;
cout << max << endl
<< min << endl
<< setiosflags(ios::fixed) << setprecision(2) << average;
return 0;
}
```
### B
```cpp
int n;
int Max(int m[10005])
{
int max = m[0];
for (int i = 1; i < n; i++)
{
if (max < m[i])
{
max = m[i];
}
}
return max;
}
int Min(int m[10005])
{
int min = m[0];
for (int i = 1; i < n; i++)
{
if (min > m[i])
{
min = m[i];
}
}
return min;
}
int main()
{
cin >> n;
int m[10005];
for (int i = 0; i < n; i++)
{
cin >> m[i];
}
int ans = 0;
for (int i = 0; i < n; i++)
{
ans += m[i];
}
int a = Max(m);
int b = Min(m);
cout << "最高分 = " << a << endl;
cout << "最低分 = " << b << endl;
printf("%.2lf", 1.0 * ans / n);
return 0;
}
```
### C
```cpp
int main()
{
int n;
cin >> n;
int sum = 0;
int top = 0;
int low = 100;
int score;
for (int i = 0; i < n; i++)
{
cin >> score;
if (score > top)
top = score;
if (score < low)
low = score;
sum += score;
}
printf("%d\n%d\n%.2lf", top, low, (sum * 1.0 / n));
return 0;
}
```