已知输入x,y,z三个不相等的整数,设计一个“高效”算法,使得这三个数按从小到大输出。用c++语言
时间: 2024-09-29 08:03:18 浏览: 57
在 C++ 中,为了高效地将三个不同的整数 x、y 和 z 按照从小到大的顺序输出,可以利用交换算法和条件判断结合。这里提供一个简单的解决方案:
```cpp
#include <iostream>
void sortThree(int& a, int& b, int& c) {
// 如果 a 最小,直接返回
if (a < b && a < c) {
return;
}
// 如果 b 最小,则交换 a 和 b
if (b < a && b < c) {
std::swap(a, b);
}
// 如果 c 最小,则交换 a 或 b 和 c
if (c < a && c < b) {
std::swap(a, c); // 如果 a 最大,再跟 c 进行交换
if (a != b) { // 确保不是 a 和 b 都是最小的
std::swap(a, b); // 否则不需要再次交换
}
}
}
int main() {
int x, y, z;
std::cout << "请输入三个不相等的整数:";
std::cin >> x >> y >> z;
// 先排序
sortThree(x, y, z);
// 输出结果
std::cout << "最小的是:" << x << std::endl;
std::cout << "其次是:" << y << std::endl;
std::cout << "最大的是:" << z << std::endl;
return 0;
}
```
在这个程序中,我们定义了一个 `sortThree` 函数,它通过比较和交换操作保证三个数按照升序排列。在 `main` 函数中,用户输入三个数,然后调用 `sortThree` 来排序并输出。
阅读全文