第一种方法:
a=a+b;
b=a-b;
a=a-b;
代码如下:
#include "stdio.h"int main(void){ int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前:/n"); printf("a=%d b=%d/n",a,b); a=a+b; b=a-b; a=a-b; printf("a和b交换后:/n"); printf("a=%d b=%d/n",a,b); system("pause"); return 0;}
缺点:可能越界
第二种方法:
解决方法:(a、b异或的结果 ,和a异或得b ,和b异或得a)
a=a^b;
b=a^b;
a=a^b;
代码如下:
#include "stdio.h"int main(void){ int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前:/n"); printf("a=%d b=%d/n",a,b); a=a^b; b=a^b; a=a^b; printf("a和b交换后:/n"); printf("a=%d b=%d/n",a,b); system("pause"); return 0;}
写成宏替换的方法如下:
#include "stdio.h"#define swap(a,b) (a)^=(b)^=(a)^=(b)int main(void){ int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前:/n"); printf("a=%d b=%d/n",a,b); swap(a,b); printf("a和b交换后:/n"); printf("a=%d b=%d/n",a,b); system("pause"); return 0;}
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow