C++返回数组中的最小的两个数
时间: 2024-09-08 18:02:23 浏览: 47
在C++中,寻找数组中的最小两个数可以通过多种方式实现。一种简单的方法是先找到数组中的最小值,然后遍历剩余的元素,找出当前最小值的下一个最小值。以下是使用迭代的方式实现的一个例子:
```cpp
#include <iostream>
#include <climits>
void findTwoSmallest(int arr[], int size, int &min1, int &min2) {
min1 = INT_MAX; // 初始化最小值为最大整数值
min2 = INT_MAX;
for (int i = 0; i < size; i++) {
if (arr[i] < min1) { // 如果当前元素比第一个最小值还小
min2 = min1; // 更新第二个最小值
min1 = arr[i]; // 更新第一个最小值
} else if (arr[i] < min2 && arr[i] != min1) { // 如果不是最小值但比第二个小
min2 = arr[i]; // 更新第二个最小值
}
}
// 如果数组中有两个相同的最小值
if (min1 == min2 && arr[size - 1];
}
}
int main() {
int arr[] = {5, 3, 8, 1, 9, 2};
int size = sizeof(arr) / sizeof(arr[0]);
int min1, min2;
findTwoSmallest(arr, size, min1, min2);
std::cout << "The two smallest numbers are: " << min1 << " and " << min2 << std::endl;
return 0;
}
```
阅读全文