第1种 常规的方法 借助于中间变量t来实现。
#include<stdio.h>
int main()
{
int a,b,t;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}
第2中 加法 与 乘法 仅用2个变量来实现
#include<stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}
乘法与其类似 只需要 稍微改动一下即可
#include<stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
a=a*b;
b=a/b;
a=a/b;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}
第3种 用异或来实现两个变量的交换
^异或运算符 :两个数相同为0,不同为1 ,且当一个数异或上2次相同的数后,原数不变,就是说4^5^5其结果还是4
#include<stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
a=a^b;
b=a^b;
a=a^b;
printf("交换后两个整数为:%d %d\n",a,b);
return 0;
}
本人,也是一名刚学习计算机的在校大学生,想尽量把老师上课讲的知识整理下来,方便以后自己来看,如果有什么不正确的地方,欢迎指出。
最后呢,老师还提到了一种借助于位移运算符的方法,但是自己还不是特别了解就没有写上,不过这个代码我给记下来了,主要的程序代码是b=(_int64)((_int64)a<<32|(a=b))>>32;如果有兴趣的可以写写看看啦。