关于#C++#的问题请问还需要什么

年级评比
比赛题目
时间限制: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;
}


img

参考GPT和自己的思路:这段代码还需要输出获得奖状的班级的平均分,并保留三位小数输出。可以在第14行添加以下代码实现:

cout << fixed << setprecision(3) << a/n << endl;

其中,fixed和setprecision是iomanip库中的流控制符,用于设置小数点后的位数。a/n是平均分的计算结果。