1.编写一个求任意类型数组中最大元素和最小元素的程序,要求将求 最大元素和最小元素的函数设计成函数模板。
时间: 2023-06-19 21:08:29 浏览: 89
C语言程序设计-求出N×M整型数组的最大元素及其所在的行坐标及列坐标(如果最大元素不唯一,选择位置在最前面的一个);.c
5星 · 资源好评率100%
以下是一个求任意类型数组中最大元素和最小元素的程序,使用了函数模板:
```c++
#include <iostream>
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 intArr[] = { 3, 1, 4, 2, 5 };
int intMin, intMax;
findMinMax(intArr, 5, intMin, intMax);
std::cout << "Minimum integer value: " << intMin << std::endl;
std::cout << "Maximum integer value: " << intMax << std::endl;
double doubleArr[] = { 3.14, 1.0, 4.0, 2.71, 5.0 };
double doubleMin, doubleMax;
findMinMax(doubleArr, 5, doubleMin, doubleMax);
std::cout << "Minimum double value: " << doubleMin << std::endl;
std::cout << "Maximum double value: " << doubleMax << std::endl;
return 0;
}
```
该程序定义了一个名为 `findMinMax` 的函数模板,该模板使用一个类型参数 `T`,并接受一个类型为 `T` 的数组 `arr`,数组大小 `size`,以及两个引用参数 `min` 和 `max`,这两个参数分别用于存储数组中的最小值和最大值。
函数模板 `findMinMax` 的实现使用了一个简单的循环来遍历数组,并在每次迭代中检查当前元素是否比已知的最小值或最大值更小或更大。如果是,则将 `min` 或 `max` 更新为当前元素。
在 `main` 函数中,我们声明了两个数组,一个 `int` 类型的数组和一个 `double` 类型的数组,并分别调用了 `findMinMax` 函数来查找这两个数组中的最小值和最大值。
阅读全文