当然是再找来一个临时杯子: 2)再把 b b b 杯子的水倒进 a a a 杯子里; 3)最后把临时杯子里的水倒进 b b b 杯子; 这种就是临时变量法,那么当然,还有很多很多的方法,接下来就让我们来见识一下吧。 1、正确解法1:引入临时变量 #include int main() { int a, b, tmp; while (scanf("%d %d", &a, &b) != EOF) { tmp = a; // (1) a = b; // (2) b = tmp; // (3) printf("%d %d\n", a, b); } return 0; } ( 1 ) (1) (1) ( 2 ) (2) (2) ( 3 ) (3) (3) 这三步,就实现了变量 a a a 和 b b b 的交换。 2、正确解法2:引入算术运算 #include int main() { int a, b; while (scanf("%d %d", &a, &b) != EOF) { a = a + b; // (1) b = a - b; // (2) a = a - b; // (3) printf("%d %d\n", a, b); } return 0; } ( 1 ) (1) (1) a的值变成原先的 当然,由于这个题目问的是交换变量后的输出,所以它是没办法知道我程序中是否真的进行了交换,所以可以干一些神奇的事情。比如这么写: #include int main() { int a, b; while (scanf("%d %d", &a, &b) != EOF) { printf("%d %d\n", b, a); } return 0;