c++编写函数找出顺序表最大最小的
时间: 2024-09-15 20:02:45 浏览: 40
在C++中,编写一个函数来找出顺序表(数组)中的最大值和最小值,可以通过一次遍历来完成。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
#include <limits> // 为了使用 std::numeric_limits
void findMinMax(const std::vector<int>& arr, int& minVal, int& maxVal) {
if (arr.empty()) {
throw std::invalid_argument("数组不能为空");
}
minVal = maxVal = arr[0]; // 初始化最小和最大值为数组的第一个元素
for (size_t i = 1; i < arr.size(); ++i) {
if (arr[i] < minVal) {
minVal = arr[i]; // 找到更小的值,更新最小值
} else if (arr[i] > maxVal) {
maxVal = arr[i]; // 找到更大的值,更新最大值
}
}
}
int main() {
std::vector<int> arr = {5, 3, 9, 1, 6, 10};
int minVal, maxVal;
try {
findMinMax(arr, minVal, maxVal);
std::cout << "最小值: " << minVal << std::endl;
std::cout << "最大值: " << maxVal << std::endl;
} catch (const std::exception& e) {
std::cerr << "发生错误: " << e.what() << std::endl;
}
return 0;
}
```
在这个例子中,`findMinMax` 函数接收一个整型数组(这里使用了 `std::vector<int>`)和两个引用参数 `minVal` 和 `maxVal` 用于存储最小和最大值。函数首先检查数组是否为空,然后初始化最小和最大值为数组的第一个元素。通过一次遍历数组,函数更新这两个变量来记录遇到的最小和最大值。如果数组为空,则抛出一个异常。
阅读全文