-
2008-06-22
一道C面试题题目 - [C++面试题]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://xingzhesun.blogbus.com/logs/23392404.html
在不另外申请内存空间的条件下,将两个整数互换。
void ExInt(int* arr, int size)
{
int mid = size/2;
for(int i =0; i < mid; i++)
{
arr[i] = arr[i] + arr[size-1- i];
arr[size-1- i] = arr[i] - arr[size-1- i];
arr[i] = arr[i] - arr[size-1- i];
}
}
int main(int argc, char* argv[])
{
int arr[]={0,1,2,3,4,5,6};
ExInt(arr, sizeof(arr)/sizeof(arr[0]));
for(int i = 0; i <sizeof(arr)/sizeof(int); i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
随机文章:
volatile 2006-11-23什么是static 2006-11-23#pragma是什么意思 2006-11-23内存对齐 2006-11-13TCL 笔试题目 2006-11-08
收藏到:Del.icio.us








评论
i think your ans is incorrect!!
maybe you shoud use xor to accomplish it
main()
{
int x=1,y=2;
cout<< x << y << endl; //output 1 2
x ^= y
y ^= x
x ^= y
cout<< x << y << endl; //output 2 1
}
then done!!