C语言题真的不会啦,帮帮我!

答案是18,请问一下大家 怎么算的啊 算了好几遍了,就是没得出来那个数

img

请采纳一下吧,不容易哈!

i=1,j=1 sum=1
i=2,j=1;sum=0+2=2
i=2,j=2,sum=2+22=6
i=3,j=1, sum=0+3=3
i=3,j=2,sum=3+6=9
i=3,j=3,sum 9+3
3=18

sum在每次更新i的时候都会变为0,只需要计算i等于3时候的sum就可以

因为有个sum=0在循环之外,所以只有在i=3的最后一个循环才是有用的,0 + 1 * 3 + 2 * 3 + 3 * 3=18

每次外循环sum都会赋值为零,所以获得了最后一次外循环后计算的值

这里是输出sum的值,而内循环每一次开始之前都会把sum清零,所以只有最后一次外循环是有效的。
外循环的判断条件为i<=3,所以i最后一次的值即为3。
内循环从1开始循环,当j<=3的时候结束,所以内循环会循环3次,j3次的值分别为1/2/3。
然后第一次内循环开始sum为0,i为3,j为1,代入得到 0 + 3 * 1,得到结果3写入sum。
第二次内循环开始sum为3,i为3,j为2,代入得到 3 + 3 * 2,得到结果9写入sum。
第三次内循环开始sum为9,i为3,j为3,代入得到 9 + 3 * 3,得到结果18写入sum。

img

img


sum定义在这里,直接计算i=3的情况即可
i=3 , j=1,sum=0+3=3
i=3 , j=2,sum=3+6=12
i=3 , j=3,sum=12+9=21