题目要求: 本题要求将输入的任意3个整数从小到大输出。
输入格式: 输入在一行中给出3个整数,其间以空格分隔。
输出格式: 在一行中将3个整数从小到大输出,其间以“->”相连。
输入样例: 4 2 8 输出样例: 2->4->8
解题思路: 因为需要比较的数据只有三个,使用两两比较的方法就可以得出结果。 假设三个变量为 a , b , c 。我们依次两两比较并进行交换。
比较过程: 首先比较 a 和 b 并进行交换(我们交换使得大的数据位于后),此时 b 可能是最大的,也可能是位于中间的:(1)若 b 是最大的,则在 a 和 c 比较并交换后,可以确保 a 是最小的,b 和 c 比较并交换后得出结果。(2)若 b 不是最大的,则最大的一定是 c 。此时已经得出了结果,后面比较时是不会进行交换的。
通关代码:
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
if (a > b) {
swap(a, b);
}
if (a > c) {
swap(a, c);
}
if (b > c) {
swap(b, c);
}
cout << a << "->" << b << "->" << c;
return 0;
}
通关截图: