用c++编写一个函数确定数组中的最小的两个值
时间: 2023-06-14 18:05:12 浏览: 74
以下是一个用C++编写的函数,可以确定数组中的最小的两个值:
```cpp
#include <iostream>
#include <climits>
using namespace std;
void findSmallestTwo(int arr[], int n) {
int smallest = INT_MAX, secondSmallest = INT_MAX;
for(int i = 0; i < n; i++) {
if(arr[i] < smallest) {
secondSmallest = smallest;
smallest = arr[i];
} else if(arr[i] < secondSmallest) {
secondSmallest = arr[i];
}
}
cout << "Smallest: " << smallest << endl;
cout << "Second Smallest: " << secondSmallest << endl;
}
int main() {
int arr[] = {5, 3, 8, 2, 9, 1};
int n = sizeof(arr) / sizeof(arr[0]);
findSmallestTwo(arr, n);
return 0;
}
```
在这个函数中,我们使用了两个变量 `smallest` 和 `secondSmallest` 来记录数组中最小的两个值。我们首先将 `smallest` 初始化为整型变量的最大值,以确保它被任何元素替换。我们然后迭代数组,如果当前元素小于 `smallest`,我们将 `smallest` 更新为该元素的值,并将 `secondSmallest` 更新为先前的 `smallest`。如果当前元素大于或等于 `smallest` 但小于 `secondSmallest`,我们将 `secondSmallest` 更新为该元素的值。最后,我们输出 `smallest` 和 `secondSmallest`。
在上面的示例中,我们使用了以下数组:
```
{5, 3, 8, 2, 9, 1}
```
输出将是:
```
Smallest: 1
Second Smallest: 2
```