啊哈磊_编程从这里起步

标题: 有点乱,求大神帮忙捋一捋 [打印本页]

作者: coco    时间: 2013-12-8 00:38
标题: 有点乱,求大神帮忙捋一捋
以下程序的输出结果是________。
main()
{ int n[3][3],i,j;
  for(i=0;i<3;i++)
    for(j=0;j<3;j++)  n[i][j]=i+j;
  for(i=0;i<2;i++)
    for( j=0;j<2;j++) n[i+1][j+1]+=n[i][j];
  printf("%d\n",n[i][j]);  
}
作者: rosynirvana    时间: 2013-12-8 00:38
第一次迭代
0+0 0+1 0+2
1+0 1+1 1+2
2+0 2+1 2+2

0 1 2
1 2 3
2 3 4
第二次迭代,加左上方的值
0 1       2
1 2+0   3+1
2 3+1   4+2+0

所以是4+2+0 = 6
自己动手算一遍就好……
作者: coco    时间: 2013-12-8 01:41
第二次迭代怎么算的?加左上方的值看不懂
作者: rosynirvana    时间: 2013-12-8 02:13

  1. a[1][1] += a[0][0]
  2. a[1][2] += a[0][1]
  3. a[2][1] += a[1][0]
  4. a[2][2] += a[1][1]
复制代码
所以说是左上方的值,因为1,1在之前加过一次,所以2,2事实上加了两个值




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2