HDU2023 求平均成绩

【题目】


【思路】本题需要开辟3个数组,第一个数组score[N][M]用来接收输入的数据,第二个数组stu[N]用来存放N个学生的平均成绩,第三个数组course[M]用来存放每个学生的M门课的平均成绩。每次输入成绩时候依次累加到对应项。

【注意】...之前提交显示格式错误,结果发现需要在输出个数后再多输出一个换行符。

【代码】AC的C++代码如下:

#include <iostream>
using namespace std;
#define N 50
#define M 5
double score[N][M];
double stu[N]; //用来存放n个学生的平均成绩
double course[M];   //用来存放每个学生的m门课成绩
int main()
{
    int n,m;
    int count;
    bool flag;
    while (cin >> n >> m)
    {
        count = 0;
        for (int i = 0;i < n;i++)
            stu[i] = 0;

        for (int j = 0;j < m;j++)
            course[j] = 0;

        for (int i = 0;i < n;i++)
        {
            for (int j = 0;j < m;j++)
            {
                scanf("%lf",&score[i][j]);
                stu[i] += score[i][j];  //每个学生的总成绩
                course[j] += score[i][j];//每门课程的总成绩
            }
        }
        //输出n个学生的平均成绩
        for (int i = 0;i < n;i++)
        {
            if (i != 0)
                printf(" %.2lf",stu[i] / m);
            else
                printf("%.2lf",stu[i] / m);
        }
        printf("\n");

        //输出m门课的平均成绩
        for (int j = 0;j < m;j++)
        {
            course[j] /= n;
            if (j != 0)
                printf(" %.2lf",course[j]);
            else
                printf("%.2lf",course[j]);
        }
        printf("\n");

        for (int i = 0;i < n;i++)
        {
            flag = true;
            for (int j = 0;j < m;j++)
            {
                if (score[i][j] < course[j])
                {
                    flag = false;
                    break;
                }
            }
            if (flag)
                count++;
        }

        printf("%d\n\n",count);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_38056893/article/details/80137193