洛谷 P8717 成绩分析 题解

题目回顾

P8717 [蓝桥杯 2020 省 AB2] 成绩分析

题目描述

小蓝给学生们组织了一场考试,卷面总分为 \(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;
}
posted @ 2023-02-02 16:46  FHenryh  阅读(260)  评论(0)    收藏  举报