6.C语言练习——两数值交换

 一、 使两个变量之间的数值进行交换的三种方法:

1.方法一:通过借助第三变量来进行交换:

void exchange1(int a,int b)
{
	int temp=0;
	printf("方法一:\n");
	printf("数值a,b交换前:a=%d,b=%d\n",a,b);
	temp=a;//temp=10
	a=b;   //a=20
	b=temp;//b=temp=10
	printf("数值a,b交换后:a=%d,b=%d\n",a,b);
	printf("\n");
}

2.方法二:通过“加减法”(可能会溢出)来进行交换:

void exchange2(int a,int b)
{
	printf("方法二:\n");
	printf("数值a,b交换前:a=%d,b=%d\n",a,b);
	a=a+b;//a=a+b=10+20=30
	b=a-b;//b=a-b=30-20=10;
	a=a-b;//a=a-b=30-20=20
	printf("数值a,b交换后:a=%d,b=%d\n",a,b);
	printf("\n");
}

3.方法三:通过“异或的方法”来进行交换:

注意:

3.1异或数学符号
异或,英文为exclusive OR,缩写成xor[1]异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),
中文名     异或
外文名     exclusive OR
数学符号  ⊕
英文简称  xor
程序符号  ^

a=10;  //十进制的数值10,转换为二进制的(0000 1010)

b=20; //十进制的数值20,转换为二进制的 (0001 0100)

3.2常用进制


3.2.1 二进制、十进制、以及它们的区别和特点。

(1)二进制,逢二进一,数字中只有 0 和 1。例如,数数,二进制的数法是:0,1 接着 10,              11 接着 100,101,110,111 接着 1000,1001 ... 1111 以此类推。后缀用 B 来表示。

(2)十进制,逢十进一,数字中含有 0,1,2,3,4,5,6,7,8,9。后缀用 D 来表示。
 

void exchange3(int a,int b)
{
	printf("方法三:\n");
	printf("数值a,b交换前:a=%d,b=%d\n",a,b);

	a=a^b;//a=(0000 1010)^(0001 0100)=(0001 1110)
	b=a^b;//b=(0001 1110)^(0001 0100)=(0000 1010)B=(10)D
	a=a^b;//a=(0001 1110)^(0000 1010)=(0001 0100)B=(20)D

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

二、总结:

4.以上所述的三种方法,均可以实现两个变量之间的数值交换,但在我们日常写代码当中,建议大家使用方法一来进行两变量之间的数值交换。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值