问答详情
源自:6-11 多维数组的遍历

为什么定义sum的时候要赋值sum=0,而只定义不赋值的时候计算结果是错的呢?大神就指教

#include <stdio.h>

int main()

{

    int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

    int i,j;

    int sum=0;

    for(i=0;i<3;i++)

    {

        for(j=0;j<3;j++)

        {

            printf("arr[%d][%d]=%d\n",i,j,arr[i][j]);

            

            if(i%2==0&&j%2==0)

            {

                sum+=arr[i][j];    

            }

        }

    }

    sum+=arr[1][1];

    printf("对角线元素之和是:%d\n",sum);

    return 0;    

}


提问者:慕运维7104542 2017-09-06 17:54

个回答

  • 慕神9311566
    2017-09-07 10:21:35
    已采纳

    因为你在后面用了“sum+=xx”,意思是sum=sum+xx,如果你在开始时不赋值,那么第二个sum是没有值的,那么这个加法没有意义了,而你给了sum=0,那么相当于sum=0+xx,这时候才有效

  • 与其联想不如华为
    2017-10-21 10:09:17

    如果只定义sum,没赋值,当用到sum的时候,系统就会随机给sum赋值一个值.