c语言程序设计柳军版题104页4题

img


这个题怎么结果等于6啊,大神可以帮帮我嘛😭😭😭

输出结果是6
下面的for循环没有{},只输出最后一个元素a[2][2]
具体过程如下:
//第一个双层for循环后,n中的值:
0 1 2
1 2 3
2 3 4

第二个双层for循环执行过程:

i=0时
j=0 a[1][1]=a[1][1]+a[0][0]=2
j=1 a[1][2]=a[1][2]+a[0][1]=4
j=2 结束内循环
此时n中的值:
0 1 2
1 2 4
2 3 4
i=1时
j=0 a[2][1]=a[2][1]+a[1][0]=4
j=1 a[2][2]=a[2][2]+a[1][1]=6
j=2 结束内循环
此时n中的值:
0 1 2
1 2 4
2 4 6

因为第二个双层for循环都没有{},printf不属于for循环,此时i=2,j=2
最后printf输出a[2][2],也就是6

双循环的结果只是对数组内容进行相加,比如a[2][2] = a[2][2] + a[1][1],由于初始化a[2][2] = 2+2=4,a[1][1] = 1+1=2,所以双循环后,a[2][2] = 4+2=6
所有循环结束后,执行printf语句,由于双循环运行结束后,i和j的值都为2,因此实际输出值为a[2][2]的值,即6