用C++,已知输入a,b,c三个不想等的整数,设计一个高效算法,使得这三个数按从小到大输出。
时间: 2024-09-18 15:04:08 浏览: 73
在C++中,如果你需要快速地将三个给定的不同整数`a`, `b`, 和`c`按照升序排列,最简单的方法是利用条件交换的思想。这里不需要复杂的排序算法,如冒泡排序、选择排序或插入排序,因为只有三个数字,直接比较即可完成。以下是一个简单的三元表达式实现:
```cpp
#include <iostream>
void sortThreeNumbers(int& a, int& b, int& c) {
if (a > b) {
std::swap(a, b);
}
if (b > c) {
std::swap(b, c);
}
if (a > b) {
std::swap(a, b); // 可能需要再次交换,以防原始a>b且b>c的情况
}
}
int main() {
int a, b, c;
std::cout << "Enter three numbers: ";
std::cin >> a >> b >> c;
sortThreeNumbers(a, b, c);
std::cout << "The numbers in ascending order are: " << a << ", " << b << ", " << c << std::endl;
return 0;
}
```
上述代码首先检查`a`和`b`的大小,然后检查`b`和`c`的大小。如果发现有较大的数排在较小的数后面,就交换它们的位置。因为每次只交换两个数,所以最多只需要两次交换就能达到有序。
阅读全文