搜索
查看: 1032|回复: 4
打印 上一主题 下一主题

这个运算过程是怎样的啊》求指教

[复制链接]
楼主
发表于 2013-12-7 22:25:18 | 显示全部楼层
cola 发表于 2013-12-7 23:11
很抱歉,我还是不太懂。我是初学者,能不能讲得再详细一点,麻烦啦!

首先,这是一个循环,把i初始化为0

然后判断i是不是小于3,如果是,i自增1,进入循环体,交换

  1. a[i]和a[5-i]
复制代码
的位置

第一次执行
i =0所以i小于3, i自增1,然后交换数组中两个元素的顺序,这次交换的是下标为1和下标为5-1 = 4的两项

第二次执行
i=1所以i小于3, i自增1,交换下标为2和下标为3两项的位置

第三次执行
i= 2所以i小于3, i自增1,交换下标为3和下标为2两项的位置

第四次执行
i=3所以i<3判断失败,从循环中退出

第二次和第三次交换反过来,相当于没做,只交换了下标为1和下标为4两项的位置
所以就是
1 5 3 4 2 6
沙发
发表于 2013-12-7 22:51:08 | 显示全部楼层
等价于

  1. i = 0;
  2. while(1){
  3.   i += 1;
  4.   swap(a[i], a[5-i]);
  5.    if(i >= 3)
  6.     break;
  7. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表