1. 程式人生 > >淺談變數交換

淺談變數交換

如何交換兩個整型變數的內容呢?
我給出三種方法與大家分享。

方法一 :三變數法

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
int main()
{
	int a = 0;
	int b = 0;
	int temp = 0;
	scanf("%d%d", &a, &b);
	temp = a;
	a = b;
	b = temp;
	printf("%d %d", a, b);
	system("pause");
	return 0;
}

那我們可以不用中間變數嗎?
答案是可以。

方法二

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
int main()
{
	int a = 0;
	int b = 0;
	scanf("%d%d", &a, &b);
	a = a + b;
	b = a - b;
	a = a - b;
	printf("%d %d", a, b);
	system("pause");
	return 0;
}

這個方法的缺點是可能會引起溢位。

方法三:異或法

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
int main()
{
	int a = 0;
	int b = 0;
	int temp = 0;
	scanf("%d%d", &a, &b);
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("%d %d", a, b);
	system("pause");
	return 0;
}

感謝您的觀看。
歡迎大家留言交流。