发布网友 发布时间:2024-10-23 20:55
共1个回答
热心网友 时间:2024-10-26 10:44
错误的地方我帮你标出来了,其实很好找的,以后细心一点,不要再犯细节错误了
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
double a[51][6],sum,b[6];
int i,j,mark;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%lf",&a[i][j]);
}
}
for(i=0,mark=0;i<m;i++)
{
for(j=0,sum=0;j<n;j++)
{
sum+=a[i][j]; //学生总成绩
}
if(mark==0) //mark标记是不是第一个
{
printf("%.2f",sum/n);
//printf("%.2f",sum/m); //题目中用n表示人数,m表示课程,你的程序中用m表示人数,n表示课程数,要分清,不要搞混了
mark++;
}
else
{
printf("% .2f",sum/n);
//printf(" %.2f",sum/m);
}
}
printf("\n");
for(j=0,mark=0;j<n;j++)
{
for(i=0,sum=0;i<m;i++)
{
sum+=a[i][j];
}
//b[j]=sum/n;
b[j]=sum/m;
if(mark==0)
{
//printf("%.2f",sum/n);
printf("%.2f",sum/m);
mark++;
}
else
{
printf(" %.2f",sum/m);
//printf(" %.2f",sum/n);
}
}
printf("\n");
for (i=0,sum=0;i<m;i++)
{
mark=0;
for(j=0;j<n;j++)
{
if(a[i][j]<b[j])
{
mark++;
break;
}
}
if(mark==0)sum++; }
printf("%.0f\n\n",sum);
}
system("pause");
return 0;
}