用c++语言,设计一个findmin函数,该函数能寻找数组中的最小元素,将该元素的下标通过参数返回,返回值为其地址值。需要考虑整型、小数等不同类型的数组。
时间: 2024-02-17 08:01:47 浏览: 92
好的,以下是一个简单的实现:
```c++
#include <iostream>
using namespace std;
template <typename T>
T* findmin(T arr[], int size, int& index) {
if (size <= 0) return nullptr;
T* minval = &arr[0];
index = 0;
for (int i = 1; i < size; i++) {
if (arr[i] < *minval) {
minval = &arr[i];
index = i;
}
}
return minval;
}
int main() {
int arr1[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3 };
double arr2[] = { 3.14, 5.2, 1.0, 2.7, 0.618 };
int index1, *p1;
double index2, *p2;
p1 = findmin(arr1, 10, index1);
p2 = findmin(arr2, 5, index2);
cout << "min value of arr1: " << *p1 << ", index: " << index1 << endl;
cout << "min value of arr2: " << *p2 << ", index: " << index2 << endl;
return 0;
}
```
这里使用了一个模板函数,同时通过引用参数返回了最小元素的下标。在函数中,首先判断数组大小是否为0,如果是,则返回空指针。然后使用指针变量`minval`记录当前最小值所在的地址。最后返回该地址,并通过引用参数返回最小元素的下标。
可以看到,我们可以使用该函数寻找不同类型的数组中的最小元素,并且返回其地址值,也能够通过参数返回其下标。
阅读全文