C语言中经常要交换两个变量的值
现在有两个整型变量,如何交换他们的值呢。
第一种方法
创建一个临时变量,通过把其中一个数值暂时赋给临时变量的方法,将变量值进行交换:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 10;
int b = 20;
int tem;
tem = a;
a = b;
b = tem;
printf("%d,%d\n",a, b);
system("pause");
return 0;
}
这样通过临时变量作为一个中介,就做到了对两个变量进行交换。
第二种方法
如果不创建临时变量要如何交换呢,可以利用四则运算进行交换
缺点是a+b可能会越界
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
printf("请输入要交换的两个值\n");
scanf("%d %d", &a, &b);
a = a + b;
b = a - b;
a = a - b;
printf("交换后的值为\n%d %d\n",a,b);
system("pause");
return 0;
}
把a的值作为两个值的和,然后通过四则运算就可以交换两个变量的值。
第三种方法
使用异或的方法进行变量值的交换,比上面的办法都更加完美
#include <stdio.h>
int main()
{
int a = 4;
int b = 5;
printf("交换前a,b的值为:\n");
printf("a=%d\n", a);
printf("b=%d\n", b);
printf("\n");
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("交换前a,b的值为:\n");
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}
总结:以上就是我总结的三种类型的交换方法,第一种缺点是要创建临时变量,
第二种类型可能会越界,推荐使用第三种方法。