j=0时,i=0,不满足i>2,s+=a[0][0],所以s=1 (a[0][0] = 1)
j=1时,i=1,不满足i>2,s+=a[1][1],所以s=3 (a[1][1] = 2)
j=2时,i=2,不满足i>2,s+=a[2][2],所以s=12 (a[2][2] = 9)
j=3时,i=3,满足i>2,所以i=3-j=0,s+=a[0][3],所以s=16 (a[0][3] = 4)
怎么会是3哦,s是不断累加的哦 那个if条件管的范围是 i = 3-j 也就是不管if怎么样,s+=那个代码都会执行啊。
a[4][4]={{1,2,3,4}
{0,2,4,6}
{3,6,9,12}
{3,2,1,0}};
第一次循环:j=0 i=0 s=0+a[0][0]=1
第二次循环:j=1 i=1 s=1+a[1][1]=3
第三次循环:j=2 i=2 s=3+a[2][2]=12
第四次循环:j=3 i=0(因为满足i>2,所以i=3-3=0)s=12+a[0][3]=16
运行相当于a[3][0]、a[2][1]、a[1][2]、a[0][3]累加。即3+6+6+1=16
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
1+2+9+4=16这里的if语句只跟i=3-j