利用函数模板原型template<typename T> T* findmin(int *minIndex, T a[], int size=10);编写程序设计一个findmin函数,该函数能寻找数组中的最小元素
时间: 2024-03-25 09:39:51 浏览: 68
array-min:获取数字数组中的最小值
下面是一个使用函数模板编写的 `findmin` 函数的示例程序:
```cpp
#include <iostream>
using namespace std;
template<typename T>
T* findmin(int *minIndex, T a[], int size = 10) {
T min_val = a[0];
*minIndex = 0;
for (int i = 1; i < size; i++) {
if (a[i] < min_val) {
min_val = a[i];
*minIndex = i;
}
}
return &a[*minIndex];
}
int main() {
int arr1[] = { 5, 3, 8, 1, 9, 2 };
int n1 = sizeof(arr1) / sizeof(arr1[0]);
int minIndex1;
int* ptr1 = findmin(&minIndex1, arr1, n1);
cout << "The minimum value in the integer array is: " << *ptr1 << ", and its index is: " << minIndex1 << endl;
double arr2[] = { 5.1, 3.2, 8.5, 1.2, 9.7, 2.4 };
int n2 = sizeof(arr2) / sizeof(arr2[0]);
int minIndex2;
double* ptr2 = findmin(&minIndex2, arr2, n2);
cout << "The minimum value in the double array is: " << *ptr2 << ", and its index is: " << minIndex2 << endl;
return 0;
}
```
这个程序中的 `findmin` 函数使用了函数模板,可以接受任意类型的数组作为参数。在 `main` 函数中,分别定义了一个整型数组和一个双精度浮点型数组,并调用了两次 `findmin` 函数分别计算出最小值和最小值所在的数组下标,并输出到屏幕上。
阅读全文