题目:
输入两个整数a和b,交换二者的值,然后输出。
分析:
先存入变量a和b,然后交换。方法如下:
空瓶法:
#include<stdio.h>
int main()
{
int a,b,t;
scanf("%d%d",&a,&b);
t = a;
a = b;
b = t;
printf("%d %d",a,b);
return 0;
}
此方法可理解为,假设a是一瓶酱油,b是一瓶醋,c是一个空瓶。那么想要对换酱油和醋所在的瓶子,只需要先把酱油倒入空瓶,再把醋倒入原先装酱油的瓶,最后把酱油倒入原先的醋瓶即可。
和数法:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
a = a + b;
b = a - b;
a = a - b;
printf("%d %d",a,b);
return 0;
}
此方法再用酱油醋的理论就不合适了,因为很少能把倒在一起的酱油和醋分开。如果设a房间里放的数是A,b房间里放的数是B。则有:
a = A + B
b = A + B - B
a = A + B - ( A + B - B)
以此达到换房的目的。
直接输出法:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d %d",b,a);
return 0;
}
推荐使用空瓶法。