难得寒假七点多就起来了,解决了一道考试前做完却一直wrong answer ,wrong answer 的我都烦了的一道水题。
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
int n,m,i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
double a[51][6];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%lf",&a[i][j]);
}
}
//一个学生的平均成绩
double sum[51];
double ave2[6],ave1[51];
for(i=0;i<n;i++)
{
sum[i]=0;
//
for(j=0;j<m;j++)
{
sum[i]=a[i][j]+sum[i];
}
ave1[i]=sum[i]/j;
if(i==n-1) printf("%.2lf",ave1[i]);
else {
printf("%.2lf",ave1[i]);
cout<<' ';}
}
cout<<endl;
//m门课的平均成绩
for(j=0;j<m;j++)
{
sum[j]=0;
//j++;
for(i=0;i<n;i++)
{
sum[j]=a[i][j]+sum[j];
}
ave2[j]=sum[j]/i;
if(j==m-1)printf("%.2lf",ave2[j]);
else {
printf("%.2lf",ave2[j]);
cout<<' ';}
}
cout<<endl;
//一个整数 ,表示该班级中各科成绩均大于等于平均成绩的学生数量
int x,count=0;
for(i=0;i<n;i++) {
x=0;
for(j=0;j<m;j++){
if(a[i][j]>=ave2[j])
x++;
}
if(x==m)
count++;
}
printf("%d",count);
cout<<endl;
cout<<endl;
}
return 0;
}
一直wrong answer的原因是求平均值的时候应该除以 i、j 而非 m、n。