C语言——如何实现变量交换

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;
    }

总结:以上就是我总结的三种类型的交换方法,第一种缺点是要创建临时变量,
第二种类型可能会越界,推荐使用第三种方法。

猜你喜欢

转载自blog.csdn.net/qq_42685588/article/details/84038517
今日推荐