一.1.给定两个整数变量的值,将两个值的内容进行交换(有临时变量)
int main()
{
int a, b, c;
scanf("%d%d", &a, &b);
c = a;
a = b;
b = c;
printf("%d\n%d\n", a, b);
return 0;
}
二.不允许有临时变量
int main()
{
int a, b;
scanf("%d%d", &a, &b);
a = a + b;
b = a - b;
a = a - b;
printf("%d\n%d\n",a, b);
return 0;
}
第二种方法的有局限性,当两个数的和超过存储空间(溢出)时就不能正常输出结果
三.按(二进制)位异或
如: 011--a
101--b (对应异或,相同为0,相异为1)
按照:
a=a^b; 110
b=a^b; 011
a=a^b; 101
int main()
{
int a,b;
scanf("%d%d",&a,&b);
a=a^b;
b=a^b;
a=a^b;
printf("%d\n%d\n",a,b);
return 0;
}
扫描二维码关注公众号,回复:
2374476 查看本文章