交换两个变量的值,通常形象的我们可以比喻成将一瓶醋借助一个空瓶子进行交换:先把酱油倒入空瓶,然后将醋倒进原来的酱油瓶中,最后把酱油从辅助的瓶子中倒入原来的醋瓶子里。
下面是另一个方法,没有借助任何变量,但是对于初学者来说可能较难理解。
#include<stdio.h>
int main()
{
int a;
int 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。
这样,就不难理解两个变量是如何交换的了。