把获取分数的scanf()函数里的%d改为%f,因为分数是float类型;
再把两行打印分数的语句里的%d改为%.1f再试试,同样因为分数是float类型.
根据题目的格式,修改如下:
#include <stdio.h>
int main()
{ int i,j,s,sum;
float g[4][6],aver[5];
for(i=0;i<3;i++)
{ sum=0;
for(j=0;j<5;j++)
{
scanf("%f",&g[i][j]);
sum=sum+g[i][j];
if(j==4) g[i][5]=sum/5.0;
}
}
for(j=0;j<5;j++)
{ s=0;
for(i=0;i<3;i++)
{
s=s+g[i][j];
if(i==2) g[3][j]=s;
}
}
for(i=0;i<4;i++)
{
for(j=0;j<6;j++)
{
if(i==3&&j==5){
printf(" 0");
}else if(j==5||i==3){
printf("%5.1f ",g[i][j]);
}else{
printf("%5.0f ",g[i][j]);
}
}
printf("\n");
}
printf("Average:\n");
for(j=0;j<5;j++)
{
aver[j]=g[3][j]/3.0;
printf("%5.1f ",aver[j]);
}
return 0;
}