编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板。
时间: 2024-02-16 12:59:42 浏览: 86
汇编程序 求数组元素的最大值和最小值
4星 · 用户满意度95%
好的,以下是求任意类型数组中最大元素和最小元素的程序,其中包括一个函数模板:
```cpp
#include <iostream>
template<typename T>
void findMinMax(T arr[], int size, T& minVal, T& maxVal) {
minVal = maxVal = arr[0];
for(int i = 1; i < size; ++i) {
if(arr[i] < minVal) {
minVal = arr[i];
}
if(arr[i] > maxVal) {
maxVal = arr[i];
}
}
}
int main() {
int arr1[] = { 5, 2, 9, 3, 8, 6 };
double arr2[] = { 3.5, 1.2, 8.9, 2.6, 7.4 };
int arr1Size = sizeof(arr1) / sizeof(arr1[0]);
int arr2Size = sizeof(arr2) / sizeof(arr2[0]);
int minVal1, maxVal1;
double minVal2, maxVal2;
findMinMax(arr1, arr1Size, minVal1, maxVal1);
findMinMax(arr2, arr2Size, minVal2, maxVal2);
std::cout << "Array 1: Min = " << minVal1 << ", Max = " << maxVal1 << std::endl;
std::cout << "Array 2: Min = " << minVal2 << ", Max = " << maxVal2 << std::endl;
return 0;
}
```
在这个程序中,我们使用了一个名为`findMinMax`的函数模板来找到任意类型数组中的最小值和最大值。该函数接受三个参数:原始数组、数组大小和两个引用变量,用于存储最小值和最大值。在函数模板中,我们使用了模板参数`T`来表示数组元素的类型。在函数内部,我们使用了一个`for`循环来遍历数组,并使用两个`if`语句来判断每个元素是否是最小值或最大值。最后,我们将找到的最小值和最大值存储在传递给函数的引用变量中。
在`main`函数中,我们声明了两个数组(一个`int`类型数组和一个`double`类型数组),并使用`sizeof`运算符计算数组的大小。然后,我们调用`findMinMax`函数模板两次,每次传递一个数组、数组大小和两个引用变量。最后,我们输出找到的最小值和最大值。
阅读全文