c++三数最小值函数
时间: 2024-10-19 08:01:05 浏览: 41
在 C++ 中,寻找数组中三个数的最小值可以使用多种方法,其中一种常见的做法是使用排序算法结合数组的特性。由于只需要找出最小值,我们可以避免对整个数组进行排序,而是直接比较前两个元素和第三个元素与当前最小值的大小,以此找到最小的组合。
以下是一个简单的 C++ 函数示例,用于找到一个整数数组中的三个最小元素:
```cpp
#include <iostream>
using namespace std;
void findThreeSmallest(int arr[], int size, int& min1, int& min2, int& min3) {
// 如果数组只有三个元素,可以直接返回
if (size == 3) {
min1 = min2 = min3 = arr[0];
return;
}
// 初始化最小值
min1 = min2 = min3 = INT_MAX; // 使用极大值初始化
// 比较第一个元素与其他两个元素
if (arr[0] < min1) {
min3 = min2;
min2 = min1;
min1 = arr[0];
} else if (arr[0] < min2) {
min3 = min2;
min2 = arr[0];
} else if (arr[0] < min3) {
min3 = arr[0];
}
// 再次从第二个元素开始遍历,因为已知了最小的三个值
for (int i = 1; i < size - 2; i++) {
if (arr[i] < min1) {
min3 = min2;
min2 = min1;
min1 = arr[i];
} else if (arr[i] < min2 && arr[i] != min1) { // 避免再次取相同的最小值
min3 = min2;
min2 = arr[i];
} else if (arr[i] < min3 && arr[i] != min1 && arr[i] != min2) {
min3 = arr[i];
}
}
}
// 示例用法
int main() {
int arr[] = {9, 4, 5, 8, 2, 7};
int size = sizeof(arr) / sizeof(arr[0]);
int min1, min2, min3;
findThreeSmallest(arr, size, min1, min2, min3);
cout << "Three smallest numbers are: " << min1 << ", " << min2 << ", " << min3 << endl;
return 0;
}
```
阅读全文
相关推荐
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![text/x-c](https://img-home.csdnimg.cn/images/20250102104920.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)