年级评比
比赛题目
时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
分数:100
描述
在阳光希望小学,小星同学的年级主任给各个班主任下达了命令,要求每个班级的班主任算出本次期中考试的平均分,然后各个班级进行比较,评选出平均分最高的班级,发放优秀班级的奖状。
每位班主任都在忙碌最近的科技周,完成计算分数这项工作很累,所以班主任将这个重任交给了学习C++编程的小星同学,请大家帮助小星同学完成这个代码的编写
输入描述
第一行,一个整数 n,表示 n 个班级 1<=n<=1000
接下来先输入一个整数 m 表示每个班级的人数,
再一行输入 m 个浮点数字表示该班级每位同学的成绩 0<=m<=100000
输出描述
输出仅一行,获得奖状的班级的平均分(保留三位小数输出)
用例输入 1
2
3
100 100 90
2
98 103
用例输出 1
100.500
#include
#include
using namespace std;
int main()
{
double n,m,y,a,b;
cin>>n>>m;
for(int i=1; i<=n;i++){
for(int j=1; j<=m;i++){
cin>>y;
a=a+y;
}
a=a/m;
}
return 0;
}
请问还需要什么
用一个变量记录最大的平均分,再加入计算最大平均分的代码,然后其他地方稍微修改下即可。
修改如下:
参考链接:
#include<iostream>
#include<iomanip> // setiosflags setprecision 头文件
#include<cstdio>
using namespace std;
int main() {
double n,m,y,a,b;
double maxAvg=0; // 记录最大的平均分
cin>>n;
for(int i=1; i<=n; i++) { // 输入n个班级的平均分
cin>>m; // 输入每个班级的人数
a=0; // 每个班级平均分初始化为0
for(int j=1; j<=m; j++) { // 输入每个班级m个学生分数,然后计算总分
cin>>y;
a=a+y;
}
a=a/m; // 计算当前班级平均分
if(a>maxAvg){ // 如果当前班级平均分大于 最大平均分,则将当前班级平均分 赋值给最大平均分变量maxAvg
maxAvg=a;
}
}
// https://blog.csdn.net/qq_51856496/article/details/121261801
cout<<setiosflags(ios::fixed)<<setprecision(3)<<maxAvg; //保留三位小数 ,打印最大平均分
return 0;
}
参考GPT和自己的思路:这段代码还需要输出获得奖状的班级的平均分,并保留三位小数输出。可以在第14行添加以下代码实现:
cout << fixed << setprecision(3) << a/n << endl;
其中,fixed和setprecision是iomanip库中的流控制符,用于设置小数点后的位数。a/n是平均分的计算结果。