求用C语言编写下列程序!

4.已知4个学生,5门功课的成绩,编写程序完成:
(1)计算每个学生的总分;
(2)计算每门功课的平均分和每个人总分的平均分;
(3)按下列程序运行结果的图示输出成绩表。

#include <stdio.h>
void main()
{ int i,j;float a[5][6],sum1=0,sum2=0,average;
printf("请输入每一个学生的5门课成绩\n");
for (i=0;i<4;i++)
for (j=0;j<5;j++)
scanf("%d",&a[i][j]);
printf("成绩统计表\n");
for (i=0;i<=3;i++)
for (j=0;j<=4;j++)
{sum1=sum1+a[i][j];a[i][j]=sum1;}
for (j=0;j<=5;j++)
for (i=0;i<=3;i++)
{sum2=sum2+a[i][j];average=sum2/4;a[i][j]=average;}
printf("%7.1f\n",a);
}
求问为什么结果不对!结果总是0.0!

#include <stdio.h>
void main()
{
    int i,j;
    float a[4][5],sum1=0,sum2=0,sum3=0;
    printf("请输入每一个学生的5门课成绩\n");
    for (i=0;i<=3;i++)
        for (j=0;j<=4;j++)
            scanf("%f",&a[i][j]);
    printf("成绩统计表\n");
    printf("学生总分:");
    for (i=0;i<=3;i++)
    {
        sum1=0;
        for (j=0;j<=4;j++)
        {
            sum1=sum1+a[i][j];
            sum3=sum3+a[i][j];
        }
        printf("%.2f ", sum1);
    }
    printf("\n");
    printf("每门功课平均分:");
    for (j=0;j<=4;j++)
    {
        sum2=0;
        for (i=0;i<=3;i++)
        {
            sum2=sum2+a[i][j];
        }
        printf("%.2f ", sum2/4);
    }
    printf("学生总分平均分:%.2f", sum3/4);
    printf("%7.1f\n",a);
}

问题比较多,改了一下,你看看。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-20
数组a定义类型float 输入的时候用的%d 格式不对
改成%f
第2个回答  2013-05-20
printf("%7.1f\n",a);????a 不是个二维数组名吗?你想输出个什么啊??
第3个回答  2013-05-20
在嵌套的for循环中要做要在外面的for循环里加一个Sum1置0的操作(这里就把之前输入的数字覆盖了),最后的嵌套for循环中用到的数已经是覆盖后的了,得不得你预计的结果。另外
printf("%7.1f\n",a);
数组不能这么输出,要每个元素单独输出,就像前面的输入一样。总之程序的问题挺多的
第4个回答  2013-05-20
printf("%7.1f\n",a);
最后一行,这怎么打印a 了?
相似回答