方案一:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=10;

int b=20;

int temp;

temp = a;

a = b;

b = temp;

printf("a=%d\nb=%d\n", a, b);

system("pause");

return 0;

}

方案二:(只适合正数)

#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=10;

int b=20;

a = a + b;

b = a - b;

a = a - b;

printf("a=%d\nb=%d\n", a, b);

system("pause");

return 0;

}

方案三:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=10;

int b=20;

a = a * b;

b = a / b;

a = a / b;

printf("a=%d\nb=%d\n", a, b);

system("pause");

return 0;

}

方案四:(正负数皆可)(最优)

#include<stdio.h>

#include<stdlib.h>

int main()

{

int a=10;

int b=20;

a = a ^ b;

b = a ^ b;

a = a ^ b;    //异或时,二进制数按位异或

printf("a=%d\nb=%d\n", a, b);

system("pause");

return 0;

}

结果:

wKiom1agc0nDuIvGAAAQs_AOlv0840.png