if后面没有括号,所以两个if对应的语句只有下面的一条,剩下的两条是必定执行的
如果你想要达到交换目的,if后面三条语句外面套一层大括号即可
有帮助望采纳~
因为你if语句后面加的是';',所以if语句只做了下面第一条,后两条怎么样都后做。
可以改成逗号','连接:
#include <cstdio>
int main() {
int a = 3, b = 4, c = 5, t = 99;
if (b < a && b < c)
t = a, a = c, c = t;
if (a < b && b < c)
t = b, b = a, a = t;
printf("%d,%d,%d", a, b, c);
return 0;
}
或者用大括号'{}'连接:
#include <cstdio>
int main() {
int a = 3, b = 4, c = 5, t = 99;
if (b < a && b < c) {
t = a; a = c; c = t;
}
if (a < b && b < c) {
t = b; b = a; a = t;
}
printf("%d,%d,%d", a, b, c);
return 0;
}
if语句下面的代码没有加大括号时,不管条件是否成立都会执行下面的代码