c++成绩分析(2020蓝桥杯F题)
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
请计算这次考试的最高分、最低分和平均分。
输入描述
输入的第一行包含一个整数 n\ (1 ≤ n ≤ 10^4)n (1≤n≤10
4),表示考试人数。
接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
输入输出样例
输入
7
80
92
56
74
88
99
10
copy
输出
99
10
71.29
copy
运行限制
最大运行时间:1s
最大运行内存: 256M
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
int x;
int max=0;
int min=100;
int sum=0;
int cnt=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
if(x>max) max=x;
if(x<min) min=x;
sum=sum+x;
cnt++;
}
cout<<setprecision(0)<<fixed<<max<<endl;
cout<<setprecision(0)<<fixed<<min<<endl;
cout<<setprecision(2)<<fixed<<(1.0*sum/cnt)<<endl;;
return 0;
}
其他方法:(直接引用库中的函数)

保存为4舍五入的形式:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
int x;
int max=0;
int min=100;
int sum=0;
int cnt=0;
float average;
cin>>n;
for(int i=1;i<=n;i++){
cin>>x;
if(x>max) max=x;
if(x<min) min=x;
sum=sum+x;
cnt++;
}
average=1.0*sum/n;
average=round(average*100)/100;
cout<<setprecision(0)<<fixed<<max<<endl;
cout<<setprecision(0)<<fixed<<min<<endl;
printf("%.2f",average);
return 0;
}

浙公网安备 33010602011771号