在很多问题的解决中都会遇到——需要交换两个变量的值,这种情况。下面的方法(三变量法)想必是大家常用的吧:
#include<stdio.h>
int main(void){
int a,b,t;
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("%d,%d\n",a,b);
return 0;
}
我们只需要再定义一个新的变量来临时存放一值,就可以完美的解决这一问题了!就像比如说需要将一个醋瓶里的醋装进酱油瓶,而把酱油装进醋瓶。为了解决这个问题我们找来一个空的瓶子,先把醋倒进空瓶子里,再把酱油倒入空了的醋瓶子,再把原来空着的瓶子里装着的醋到进酱油瓶就。这样就万事大吉了。
但是除此之外还有别的途径来调换它们的值吗?答案是肯定的。
这个方法代码如下:
#include<stdio.h>
int main(void){
int a,b;
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("%d,%d\n",a,b);
return 0;
}
这就不太方便用倒酱油来作比喻了。
在顺序结构的程序中,程序是一条一条的执行的。假定我们输入的是a0和b0;在scanf语句执行完后a=a0,b=b0。
执行完a=a+b后a=a0+b0;b=b0;
执行完b=a-b后a=a0+b0;b=a0;
执行完a=a-b后a=b0,b=a0;
这个方法看起来挺不错(少用了一个变量),但实际上很少使用,只有定义了加减法的数据类型才能这样使用。并不推荐大家真正的去使用,只是作为一个方法来介绍,开拓思维。