用c++编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板
时间: 2024-02-15 10:02:47 浏览: 145
求一个矩阵鞍点程序代码C++
好的,我来为您解答。以下是代码实现:
```cpp
#include <iostream>
using namespace std;
template<class T>
void max_min(T arr[], int size, T& max_val, T& min_val) {
max_val = min_val = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > max_val) {
max_val = arr[i];
}
if (arr[i] < min_val) {
min_val = arr[i];
}
}
}
int main() {
int int_arr[] = { 3, 5, 2, 7, 1 };
double double_arr[] = { 3.5, 1.2, 6.7, 2.1, 9.8 };
int int_max, int_min;
double double_max, double_min;
max_min(int_arr, 5, int_max, int_min);
max_min(double_arr, 5, double_max, double_min);
cout << "Int array max: " << int_max << endl;
cout << "Int array min: " << int_min << endl;
cout << "Double array max: " << double_max << endl;
cout << "Double array min: " << double_min << endl;
return 0;
}
```
在这个程序中,我们使用了函数模板 `max_min` 来求解任意类型的数组中最大和最小元素。函数模板定义了一个类型为 `T` 的数组 `arr`,一个整数 `size`,以及两个引用类型的变量 `max_val` 和 `min_val`。函数的实现方式是遍历数组中的元素,比较它们的大小,将最大值和最小值分别存储在 `max_val` 和 `min_val` 变量中。
在 `main` 函数中,我们分别用 `int` 类型和 `double` 类型的数组测试了 `max_min` 函数。我们将求得的最大值和最小值分别存储在 `int_max`、`int_min`、`double_max` 和 `double_min` 变量中,并在控制台中输出。
阅读全文