给定两个整形变量的值,将两个值的内容进行交换 (C语言)

    第一种方法:
        定义一个临时变量temp来进行a和b的值交换,代码如下:

#include <stdio.h>
int main ()
{
	int a = 5;
	int b = 15;
	int temp = 0;
	printf("初始值: a=%d, b=%d\n",a,b);

	temp = a;//temp=5
	a = b;//a=15
	b = temp;//b=5
	printf("交换后: a=%d, b=%d\n",a,b);

	return 0;
}


    

第二种方法:
        不定义临时变量,通过利用a和b差值(也可以利用其他运算)进行交换,代码如下:
   
#include <stdio.h>
int main ()
{
	int a = 5;
	int b = 15;
	printf("初始值: a=%d, b=%d\n",a,b);

	a = a-b;//a=-10
	b = b+a;//b=5
	a = b-a;//a=15
	printf("交换后: a=%d, b=%d\n",a,b);

	return 0;
}
第三种方法:
        不定义临时变量,通过异或(对两个数二进制各个比特位进行异或,相同为0,相异为1)的方法对a和b的值进行交换,代码如下:

#include <stdio.h>
int main ()
{
	int a = 5;
	int b = 15;
	printf("初始值: a=%d, b=%d\n",a,b);

	a ^= b;
	b ^= a;
	a ^= b;
	printf("交换后: a=%d, b=%d\n",a,b);

	return 0;
}

吐舌头

猜你喜欢

转载自blog.csdn.net/chainsmoker_/article/details/80362777