啊哈磊_编程从这里起步
标题:
这个运算过程是怎样的啊》求指教
[打印本页]
作者:
cola
时间:
2013-12-7 22:25
标题:
这个运算过程是怎样的啊》求指教
#include <stdio.h>
void main( )
{ int a[10]={1,2,3,4,5,6},i,j;
for(i=0;i++<3;)
{ j=a[i];a[i]=a[5-i];a[5-i]=j;}
for(i=0;i<6;i++) printf("%d ",a[i]);
}
作者:
rosynirvana
时间:
2013-12-7 22:25
cola 发表于 2013-12-7 23:11
很抱歉,我还是不太懂。我是初学者,能不能讲得再详细一点,麻烦啦!
首先,这是一个循环,把i初始化为0
然后判断i是不是小于3,如果是,i自增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
作者:
rosynirvana
时间:
2013-12-7 22:51
等价于
i = 0;
while(1){
i += 1;
swap(a[i], a[5-i]);
if(i >= 3)
break;
}
复制代码
作者:
cola
时间:
2013-12-7 23:11
很抱歉,我还是不太懂。我是初学者,能不能讲得再详细一点,麻烦啦!
作者:
cola
时间:
2013-12-7 23:48
懂了,谢谢
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2