1.用c++编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。
时间: 2024-01-22 17:20:50 浏览: 76
以下是一个求任意类型数组中最大元素和最小元素的程序,使用了函数模板:
```c++
#include <iostream>
using namespace std;
template<typename T>
void findMinMax(T arr[], int size, T& min, T& max) {
min = max = arr[0];
for(int i=1; i<size; i++) {
if(arr[i] < min) min = arr[i];
if(arr[i] > max) max = arr[i];
}
}
int main() {
int int_arr[] = {1, 5, 3, 7, 2};
double double_arr[] = {2.4, 5.1, 1.8, 0.9};
int int_min, int_max;
double double_min, double_max;
findMinMax(int_arr, 5, int_min, int_max);
findMinMax(double_arr, 4, double_min, double_max);
cout << "Int array: min = " << int_min << ", max = " << int_max << endl;
cout << "Double array: min = " << double_min << ", max = " << double_max << endl;
return 0;
}
```
输出结果为:
```
Int array: min = 1, max = 7
Double array: min = 0.9, max = 5.1
```
在该程序中,`findMinMax` 函数是一个模板函数,可适用于任何数据类型。它接受一个数组、数组大小以及两个引用类型的参数,分别表示最小值和最大值,并通过引用返回计算结果。在函数内部,我们使用 for 循环遍历数组,并比较每个元素与当前最小值和最大值的大小关系,更新最小值和最大值的值。
阅读全文