如何变换两个变量的数值

来源:互联网 发布:不动产测绘软件 编辑:程序博客网 时间:2024/05/20 11:51

一、创建第三个变量交换两个值

          这种办法是最普通最直观的。

#include<stdio.h>#include<stdlib.h>int main(){int a=1,b=8;int c=0;c=a;a=b;b=c;printf("%d %d\n",a,b);system("pause");return 0;}

二、不创建第三个变量交换两个值

       可以通过三种方法实现: 

1.按位异或

#include<stdio.h>#include<stdlib.h>int main(){int a=1,b=8;                      a=a^b;                //先将a,b异或的值赋给ab=a^b;                //b的值为最初a的值(此时已经发生交换)a=a^b;                //a的值为最初b的值(此时已经发生交换)printf("%d %d\n",a,b);system("pause");return 0;}

2.使用加减或者乘除

这种方法实质上和“按位异或”是一样的,例如:

加减:

n1=n1+n2;

n2=n1-n2;

n2=n1-n2;

乘除和加减一样(此时n2不能等于0),但是,使用这种方法时应该注意:这两种方法都会有数据的溢出(当数据特别大时),因此在此时得到结果就会与想的不同。而利用异或的方法就不会。因此建议使用“按位异或”

0 0
原创粉丝点击