为什么我在结果中得到随机数?

问题描述 投票:-1回答:1

我试图在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;
}
c
1个回答
2
投票

您需要初始化数组。

尝试

int gradeArr[5][5] = {0};
© www.soinside.com 2019 - 2024. All rights reserved.