(c语言)用数组计算2个同学和3门课的平均成绩

代码如下:
#include <stdio.h>
#define m 2
#define n 3
void ave1(int a[m][n],float b[m])
{ int i,j;
for (i=0;i<m;i++)
{ b[i]=0;
for (j=0;j<n;j++)
{ b[i]=b[i]+a[i][j];
b[i]/=n; /*扫描2名学生的成绩算出平均值*/
}
}

}
void ave2(int a[m][n],float c[n])
{ int i,j;
for(j=0;j<n;j++)
{ c[j]=0;
for(i=0;i<m;i++)
{ c[j]=c[j]+a[i][j];
c[j]/=m; /*扫描3门课的成绩算出平均值*/
}
}
}
void main()
{ int a[m][n],i,j;
float b[m];
float c[n];
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf ("%d",&a[i][j]); /*接受2行3列的数组*/
ave1(a,b);
for (i=0;i<m;i++)
printf("%4.2f ",b[i]); /*扫描输出2个学生成绩的平均值*/
printf("\n");
ave2(a,c);
for (j=0;j<n;j++)
printf("%4.2f ",c[j]); /*扫描输出3门课的成绩的平均值*/
printf("\n");
}

程序无语法错误,就是得不到正确的答案.

#include <stdio.h>
#define m 2
#define n 3
void ave1(int a[m][n],float b[m])
{
int i,j;
for (i=0;i<m;i++)
{
b[i]=0;
for (j=0;j<n;j++)
{
b[i]=b[i]+a[i][j];
/*扫描2名学生的成绩算出平均值*/
}
b[i]/=n; /*从for中拿出*/
}

}
void ave2(int a[m][n],float c[n])
{
int i,j;
for(j=0;j<n;j++)
{
c[j]=0;
for(i=0;i<m;i++)
{
c[j]=c[j]+a[i][j];
/*扫描3门课的成绩算出平均值*/
}
c[j]/=m;/*从for中拿出*/
}
}
void main()
{
int a[m][n],i,j;
float b[m];
float c[n];
printf("input number:\n");
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf ("%d",&a[i][j]); /*接受2行3列的数组*/
ave1(a,b);
for (i=0;i<m;i++)
printf("%4.2f ",b[i]); /*扫描输出2个学生成绩的平均值*/
printf("\n");
ave2(a,c);
for (j=0;j<n;j++)
printf("%4.2f ",c[j]); /*扫描输出3门课的成绩的平均值*/
printf("\n");
}
温馨提示:答案为网友推荐,仅供参考
相似回答