为什么运行的各种结果数都为0

img


为什么运行的各种结果数都为0 各个学生的各科成绩都写了 可为什么算出来各个学生的平均成绩会是0

如下,箭头指的地方数据类型要用 %f

img


此外, sum 需要定义成浮点型变量,最后结果才是完全正确的
像下面这样就可以了

#include <stdio.h>
int main()
{
    int i,j;
    float sum = 0;
    float average[4];
    int a[4][5] = {{80,86,82,76,78}, {86,80,84,74,72}, {80,86,82,84,70}, {86,80,72,92,98}};
    for(j = 0; j < 4; j++)
    {
        for(i = 0; i < 5; i++)
        {
            sum = sum + a[j][i];
        }
        average[j] = sum / 5;
        sum = 0;
    }
    printf("第一个学生的平均成绩:%f\n", average[0]);
    printf("第二个学生的平均成绩:%f\n", average[1]);
    printf("第三个学生的平均成绩:%f\n", average[2]);
    printf("第四个学生的平均成绩:%f\n", average[3]);
    return 0;
}

img

(1)average[j] = sum / 5; 改成

average[j] = sum / 5.0;

(2)下面printf中的%d都改成%f

printf("第一个学生的平均成绩:%f\n", average[0]);
printf("第二个学生的平均成绩:%f\n", average[1]);
printf("第三个学生的平均成绩:%f\n", average[2]);
printf("第四个学生的平均成绩:%f\n", average[3]);

因为你的average定义是float 最后的输出printf写的类型是%d float对应应该用%f 将输出中的%d全部改为%f就可以了

第一: 最终结果是浮点型数据,所以average[j]=sum/5.0;一定要写成5.0才可以,至少保证有一个是带小数点的
第二:既然是浮点数,打印时用%f而不是%d

把float改成double

img