C语言数组与函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 03:09:52
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf("%d\n",t);
}

t=t+b[i][b[j][j]]这句什么意思
是b[i]和b[j][j]相乘的意思么?
结果是?

看清楚括号就知道了b[j][j]是一个数作为b【i】【b[j][j]】的第二维的维数。
为了更清楚,换了半角的括号。

b[i][b[j][j]]; 其中【b[j][j]】的意思就是普通二维数组的第二维的下标,因为b[j][j]是个整型的数据;我来跟你分步讲解:
俩个循环,外循环三次,你看看,其实内循环都只循环一次,因为j=i,而条件是j<=i,所以只执行一次;
第一次外循环:i=0,j=0,t=1,所以b[j][j]=0,所以t=t+b[0][0]=1
第二次外循环:i=1,j=1,t=1,所以b[j][j]=1,所以t=t+b[1][1]=2
第三次外循环:i=2,j=2,t=2,所以b[j][j]=2,所以t=t+b[2][2]=4
循环结束,打印t,所以结果是4
其实这个程序的功能就是t加上这个二维数组的对角线的元素之和

b[i][b[j][j]]是跟b[3][3]同结构的二维数组。。注意看清其结构,不要受形式影响,。。

“”(j=i;j<=i;j++)“”
在这句就没看懂了。
后面就更不知道了。

这个循环没意义吧?