这是一个既要求每个同学的平均成绩,
还要求班级各科的平均成绩
最后还要求各科都超过班级平均成绩的同学人数的问题,
不是特别难,但是要考虑的因素很多,
比较繁琐也比较费时间,
但是编的还比较顺利,
以下是代码:
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int n, m;
double a[50][5];
while (cin >> n >> m)
{
double stuscore[50], subscore[5];
for (int i = 0; i < n; i ++)
{
double sum1 = 0;
for (int j = 0; j < m; j ++)
{
cin >> a[i][j];
sum1 += a[i][j];
}
stuscore[i] = sum1 / m; //求出每个学生的平均成绩
}
for (int x = 0; x < m; x ++)
{
double sum2 = 0;
for (int y = 0; y < n; y ++)
{
sum2 += a[y][x];
}
subscore[x] = sum2 / n; //求出班级各科的平均成绩
}
int flag, student = 0;
for (int p = 0; p < n; p ++)
{
flag = 0;
for (int q = 0; q < m; q ++)
{
if (a[p][q] >= subscore[q])
flag ++;
}
if (flag == m)
student ++; //求出各科都超过班级各科平均成绩的同学个数
}
for (int t1 = 0; t1 < n; t1 ++)
{
if (t1 == 0)
printf ("%.2lf", stuscore[t1]);
else
{
printf (" ");
printf ("%.2lf", stuscore[t1]); //打印学生平均成绩
}
}
printf ("\n");
for (int t2 = 0; t2 < m; t2 ++)
{
if (t2 == 0)
printf ("%.2lf", subscore[t2]);
else
{
printf (" ");
printf ("%.2lf", subscore[t2]); //打印班级各科平均成绩
}
}
printf ("\n");
printf ("%d\n", student); //打印各科超过平均成绩的同学个数
printf ("\n");
}
system ("pause");
return 0;
}