朱悦周遇害:这个函数错在哪?(数组)

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 17:57:42
#include <iostream>
using namespace std;

void main()
{
int n;
int a[]={1,2,3,4,5,6};
n=sizeof(a)/sizeof(a[0]);
int temp;
for(int i=0;i!=n-i-1;i++)
{
temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp;
}

} //目的是将a[]逆序
如果非要用!=来比较怎么改?

判断条件i!=n-i-1;这个错了。
当n为奇数时,这个式子在i==(n-1)/2的时候停止
但当n为偶数,比如你上面的6,则不管i值为多少,i!=n-i-1都是成立的,于是造成了死循环。
可将条件改成
i<n/2