s的值是怎么计算的啊
不是很明白计算的过程
#include
#include
int main()
{int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=0;i<3;i++)
for(j=0;jprintf("%d\n",s);
return 0;
}
要想知道s最终是什么,你先要知道a里装的是什么,因为s是在累加a的值
a是3x3的,但是初始化的时候每行只传了2个值,那么第3个值会是个随机数,我们就当它是X吧
所以a里放的是
1 2 X
3 4 X
5 6 X
那么再看循环,i从0到3,是把每一行都遍历一遍的,而j<i,
第0行不可能j<0,没有符合的,第1行j可以取0,所以取a[1][0],第2行可以取到a[2][0]和a[2][1]
所以是3+5+6
就是计算矩阵下三角所有元素之和,也就是3+5+6=14
可以从循环入手去看,依次进入两个循环
i=0,j=0;判断第二个for循环中的条件j<i不成立,退出第二个循环回到第一个循环,此时s=0
i=1,j=0;条件j<i成立,s=s+a[1][0]=0+3=3,继续第二个循环
i=1,j=1;条件j<i不成立,退出第二个循环回到第一个循环,此时s=3
i=2,j=0;条件j<i成立,s=s+a[2][0]=3+5=8,继续第二个循环
i=2,j=1;条件j<i成立,s=s+a[2][1]=8+6=14,继续第二个循环
i=2,j=2;条件j<i不成立,退出第二个循环,第一个循环也结束了,此时s=14
所以最后结果s=14
在这段代码中,变量 s 的值是通过对数组 a 中的所有元素进行求和得到的。
首先,变量 s 的初始值为 0。然后,使用两重循环来遍历数组 a 中的每个元素。外层循环的变量 i 的范围是 0 到 2,内层循环的变量 j 的范围是 0 到 i。每次循环时,将 a[i][j] 的值加到 s 上。
当外层循环的变量 i 的值为 0 时,内层循环的变量 j 的值是 0,所以不会执行内层循环中的语句。当外层循环的变量 i 的值为 1 时,内层循环的变量 j 的值是 0,所以会执行一次内层循环中的语句,将 a[1][0] 的值加到 s 上。当外层循环的变量 i 的值为 2 时,内层循环的变量 j 的值是 0 和 1,所以会执行两次内层循环中的语句,分别将 a[2][0] 和 a[2][1] 的值加到 s 上。
所以,当外层循环结束后,变量 s 的值是 3+4+5=12。