互联网招聘网站,随州seo推广,推广网站怎么做,建设网站怎么克隆在C语言中可以通过建立临时变量来实现两个变量的交换#xff0c;当不允许建立临时变量时#xff0c;应该怎样实现两变量的交换呢#xff1f;假设有两个变量num1和num2#xff1b;下面通过两种方法进行分析。方法一#xff1a;利用加减法。具体算法分析如下#xff1a;由于…在C语言中可以通过建立临时变量来实现两个变量的交换当不允许建立临时变量时应该怎样实现两变量的交换呢假设有两个变量num1和num2下面通过两种方法进行分析。方法一利用加减法。具体算法分析如下由于 num1num2-num1num2;num1num2-num2num1;则将num1num2赋给num1num1-num2赋给num2num1-num2赋给num1这样就可以实现num1和num2两个数内容的交换。通过相同的思想我们也可以将加减运算改为乘除运算但此法存在缺陷。对于不能整除的两个数设定的精度不同结果的误差就不同。代码如下#includeint main(){int num110,num220;num1num1num2;num2num1-num2;num1num1-num2;/*相同方法:将“”“-”换成“*”“/”*/printf(%d %d,num1,num2);return 0;}方法二利用按位异或法。C语言中异或运算符“^”也称为“XOR”运算符对于二进制数据它的运算规则是0^000^111^011^11若参加运算的两个数同号则结果为0(假)异号时结果为1(真)。具体算法分析如下num1^num2^num1num2;num1^num2^num2num1;则将num1^num2赋给num1num1^num2赋给num2num1^num2赋给num1这样就可以实现num1和num2两个数内容的交换。例如两个变量a2和b3.a2 00000000 00000000 00000000 00000010b3 00000000 00000000 00000000 00000011aa^b2^3 00000000 00000000 00000000 00000001ba^b2^3^3 00000000 00000000 00000000 00000010aa^b2^3^2 00000000 00000000 00000000 00000011此时两个数ab的内容交换了。代码如下#includeint main(){int num135,num256;num1num1^num2;num2num1^num2;num1num1^num2;/*异或此法优于用加减法或乘除法*/printf(num1%d,num2%d,num1,num2);return 0;}小知识如何动态求取数组大小例如对于数组不知道其大小可通过sizeof求其长度。sizeof运算符可以动态计算类型大小对于数组a[]它的数组大小可用sizeof(a)/sizeof(a[0])求取对于整型数组sizeof(a[0])4。