s+=a[i][a[j][j]]是什么意思啊

[复制链接]
查看11 | 回复4 | 2011-3-22 11:50:41 | 显示全部楼层 |阅读模式
以下程序
int a[3][3]={0,1,2,0,1,2,0,1,2},i,j,s=1;
for(i=0;i<3;i++) for(j=i;j<=i;j++)
s+=a[a[j][j]]
printf("%d\n",s),运行结果是4。
可是我不知道那个s+=a[a[j][j]]是什么意思,怎么运行的

回复

使用道具 举报

千问 | 2011-3-22 11:50:41 | 显示全部楼层
你这段代码里的[ ]里面都是int类型,所以先不管其他的了。我这么给你分步解析下吧:你的int a[3][3]=.....,a[j],a里面的第(i+1)个元素, 显然本来就是个数组,就是数组里面的元素又是个数组;这么看一下:int[] aaa = a[j]; 所以a[j][j] 就是aaa[j];而 aaa[j]就是int类型的,int b=aaa[j] ; 所以: a[a[j][j]] 实际上就是 a ;接下来的 a就又是跟上面一样的来理解了。其实这再简单不过了,只是形式上看起来复杂而已。a的元素为数组d,a就是个int类型f,s+=a[a[j][j]],就是s=s+f
回复

使用道具 举报

千问 | 2011-3-22 11:50:41 | 显示全部楼层
C语言里的运算符嘛。。。这个其实可以写成两句代码:a[j]=i;j++;只不过是写在一起了后缀自加减运算符是先把变量的值调用完成调用之后,再对该变量进行自加减运算
回复

使用道具 举报

千问 | 2011-3-22 11:50:41 | 显示全部楼层
就是取这个矩阵的i行a[j][j]列 那个数
回复

使用道具 举报

千问 | 2011-3-22 11:50:41 | 显示全部楼层
a[a[j][j]]=s+a[a[j][j]]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行