代码
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int n, m;
while(cin>>n>>m) {
double grade[n][m];
double avgStu[n] = {0};
double avgCour[m] = {0};
memset(grade, 0, sizeof(grade));
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
cin>>grade[i][j];
avgStu[i] += grade[i][j];
avgCour[j] += grade[i][j];
}
}
for(int i=0; i<n; i++) {
avgStu[i] /= (double)m;
}
for(int j=0; j<m; j++) {
avgCour[j] /= (double)n;
}
int count = 0;
for(int i=0; i<n; i++) {
int greater = 0;
for(int j=0; j<m; j++) {
if(grade[i][j]>=avgCour[j]) {
greater++;
}
}
if(greater==m) {
count++;
}
}
printf("%.2lf", avgStu[0]);
for(int i=1; i<n; i++) {
printf(" %.2lf", avgStu[i]);
}
printf("\n");
printf("%.2lf", avgCour[0]);
for(int i=1; i<m; i++) {
printf(" %.2lf", avgCour[i]);
}
printf("\n");
printf("%d\n\n", count);
}
return 0;
}
注解
1、初始化,初始化,初始化!
不对grade, avgStu, avgCour初始化,结果一直是Wrong Answer!
2、每个测试实例后面跟一个空行。
3、double类型保存成绩。保留两位小数用printf("%.2lf")