该方法可以交换整型和浮点型数值的变量,但在处理浮点型的时候有可能出现精度的损失,例如对数据: a = 3.123456 b = 1234567.000000 交换后各变量值变为: a = 1234567.000000 b = 3.125000 很明显,原来a的值在交换给b的过程中发生了精度损失。 (2)乘除法。 a = a * b; b = a / b; a = a / b; 乘...
通常我们在对数组进行操作的时候,会交换数组中的两个元素,如exchang(&a[i], &b[j]), 这儿如果i==j了(这种情况是很可能发生的),得到的结果就并非我们所期望的。 void main() { int a[2] = {1, 2}; exchange(a[0], a[1]); //交换a[0]和a[1]的值 printf("1---a[0]=%d a[1]=%d\n...
有两种方式可以不使用中间变量,交换同类型的变量a,b的值:1 .使用加法操作a+=b; b=a-b;a -= b;2 .使用异或操作:a^=b;b^=a;a^=b;C语言运算符是说明特定操作的符号, 它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。除...
1. 按位异或运算符“^”是双目运算符,其功能是参与运算的两数各对应的二进制位相异或,当对应的二进制位相异时,结果为1。参与运算数仍以补码形式出现。 如a = 5 , b = 9,进行转换。 例如9 ^ 5可写成算式如下: 0000 1001 ^ 0000 0101 = 0000 1100 (十进制数为12) #include<stdio.h>intmain(){int...
不用中间变量交换两个数 swap(a,b); #include <iostream>usingnamespacestd;intmain () {inta =3;intb =5; cout<<"a="<<a<<",b="<<b<<endl; a= a+b;///a=7b = a-b;///b=3;a = a-b;///a=5cout<<"a="<<a<<",b="<<b<<endl;return0;...
java不用中间变量交换两个值 publicvoidchangeVal(){inta = 2;intb = 3; System.out.println("交换前 a:"+a+",b:"+b); a= a+b; b= a-b; a= a-b; System.out.println("交换后 a:"+a+",b:"+b); }