异或操作交换两个变量的值

来源:互联网 发布:百度网盘 不限速 知乎 编辑:程序博客网 时间:2024/06/05 01:16

前天注册皮皮书屋,给我出的一道题,问输出结果。初看没看懂中间的数组赋值什么意思,后来在visual studio里调试发现,中间的操作是交换两个变量的值。特此记下来留作参考。

#include <stdio.h>
#include <string>
#define ARRAY_SIZE 10
int main()
{
 int arr[ARRAY_SIZE] = {51,116,53,120,85,66,71,98,86,100};
 int i, j;
 for(i = 0; i < ARRAY_SIZE; i++)
  for(j = 0; j < ARRAY_SIZE-1; j++)
   if(arr[j] > arr[j+1]) {
    arr[j] ^= arr[j+1];
    arr[j+1] ^= arr[j];
    arr[j] ^= arr[j+1];
   }
   for(i = 0; i < ARRAY_SIZE; i++)
    printf("%c", arr[i],arr[i]);
  
}

原创粉丝点击