用c语言实现两数交换的四种方法

方法一:借助第三个变量实现两 数交换:

test1()
{
	int a = 1;
	int b = 2;
	int c = a;
	a = b;
	b = c;
	printf(" a = %d  b = %d\n", a, b);
}

方法二:两数进行加减运算实现量阿叔交换:

test2()
{
	int a = 1;
	int b = 2;
	int c = a + b;
	a = c - a;
	b = c - b;
	printf("a = %d  b = %d\n", a, b);
}

方法三:进行异或运算实现两数交换:

test3()
{
	int a = 1;
	int b = 2;
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("a = %d  b = %d\n", a, b);

}

 方法四:进行移位操作实现两数交换:

test4()
{
	int a = 1;
	int b = 2;
	a = a << 8;
	a = a + b;
	b = a >> 8;
	a = a & 0xff;
	printf("a = %d  b = %d\n", a, b);
}

 完整的代码:

#include<stdio.h>
test1()
{
	int a = 1;
	int b = 2;
	int c = a;
	a = b;
	b = c;
	printf("a = %d  b = %d\n", a, b);
}
test2()
{
	int a = 1;
	int b = 2;
	int c = a + b;
	a = c - a;
	b = c - b;
	printf("a = %d  b = %d\n", a, b);
}
test3()
{
	int a = 1;
	int b = 2;
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;
	printf("a = %d  b = %d\n", a, b);

}
test4()
{
	int a = 1;
	int b = 2;
	a = a << 8;
	a = a + b;
	b = a >> 8;
	a = a & 0xff;
	printf("a = %d  b = %d\n", a, b);
}
int main()
{
	test1();
	test2();
	test3();
	test4();
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41209741/article/details/82261889