为什么我的结果中会出现随机数?

时间:2018-12-05 15:49:48

标签: c

我正在尝试在5x5数组中进行4x4输入,并获得第五行中每行的总和。 我敢肯定,如果您在下面阅读了我的代码,就会知道我在说什么。 例如,如果我输入:

1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16

预期结果应为:

1 2 3 4 10
5 6 7 8 26
9 10 11 12 42
13 14 15 16 58
28 32 36 40 136

相反,我得到的结果是:

1 2 3 4 10
5 6 7 8 32792
9 10 11 12 42
13 14 15 16 58
28 32 36 40 -501277720

我考虑过为什么要获得这些随机值,但却找不到解决方案。为什么我会得到这些值以及如何解决?

#include <stdio.h>
int main ()
{
    int gradeArr[5][5];
    int i,j;
    printf("Input grades:\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            scanf("%d",&gradeArr[i][j]);
            gradeArr[i][4] += gradeArr[i][j];
        }
    }
    printf("%d\n", gradeArr[1][4]);
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            gradeArr[4][i] += gradeArr[j][i];
        }
        gradeArr[4][4] += gradeArr[4][i];
    }
    printf("Result: \n");
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            printf("%d ",gradeArr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您需要初始化数组。

尝试

int gradeArr[5][5] = {0};