洛谷 P8717 成绩分析 题解
题目回顾
题目描述
小蓝给学生们组织了一场考试,卷面总分为 \(100\) 分,每个学生的得分都是一个 \(0\) 到 \(100\) 的整数。
请计算这次考试的最高分、最低分和平均分。
输入格式
输入的第一行包含一个整数 \(n\),表示考试人数。
接下来 \(n\) 行,每行包含一个 \(0\) 至 \(100\) 的整数,表示一个学生的得分。
输出格式
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
样例输入
7
80
92
56
74
88
99
10
样例输出
99
10
71.29
提示
对于 \(50 \%\) 的评测用例, \(1 \leq n \leq 100\)。
对于所有评测用例, \(1 \leq n \leq 10000\)。
蓝桥杯 2020 第二轮省赛 A 组 F 题(B 组 F 题)。
思路
维护一个最大值 \(maxx\) 和一个最小值 \(minx\),并维护一个 \(sum\) 表示分数的总和,求平均分时只需将 \(sum\) \(\div\) \(n\) 即可。
注意输出平均分要四舍五入,作者采用了 \(printf\) 的方法。(当然还有其他方法,例如使用 \(round\) 函数)
题目不难,详情见代码:
\(AC\) \(Code\)
#include<bits/stdc++.h>
using namespace std;
int n;
int maxx=0,minx=101,sum;
//最大值和最小值要初始化
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
//输入分数
maxx=max(maxx,x);//最大值
minx=min(minx,x);//最小值
sum+=x;//分数和
}
printf("%d\n%d\n%.2lf",maxx,minx,sum*1./n);
//平均值四舍五入输出到小数点后两位
return 0;
}
本文来自博客园,作者:FHenryh,转载请注明原文链接:https://www.cnblogs.com/FHenryh/p/solution-luogu-P8717.html

浙公网安备 33010602011771号