一面试题:不用任何中间变量,完成两个int型的交换。

来源:互联网 发布:禁止系统软件安装软件 编辑:程序博客网 时间:2024/06/16 11:42
#include <stdio.h>

int change(int* pa,int* pb)
{

     *pa = *pa*2;
     *pb = *pb*2;
     *pa = *pa - (*pa-*pb)/2;
     *pb = *pb - (*pb-*pa)*2;
     *pa = *pa + (*pa-*pb);
     *pa = *pa/2;
     *pb = *pb/2;
     return 0;
}
int main()
{
    int a = 5;
    int b = 10;

   change(&a,&b);  
   printf("a = %d,b=%d\n",a,b);
    
}