用c++语言,编写一个函数模板findmin,从键盘输入十个数,包括小数和整数,该函数能寻找数组中的最小元素,将该元素的下标通过参数返回,函数返回值为其地址值,分别得到最小数,最小数的下标和地址
时间: 2024-01-22 11:03:36 浏览: 71
好的,以下是代码实现:
```cpp
#include <iostream>
template <typename T>
T* findmin(T arr[], int len, int& index) {
T* min = &arr[0];
index = 0;
for (int i = 1; i < len; i++) {
if (arr[i] < *min) {
min = &arr[i];
index = i;
}
}
return min;
}
int main() {
const int size = 10;
int arr[size];
std::cout << "Please enter " << size << " integers:" << std::endl;
for (int i = 0; i < size; i++) {
std::cin >> arr[i];
}
int min_index;
int* min = findmin(arr, size, min_index);
std::cout << "The minimum element is " << *min << ", its index is " << min_index << ", and its address is " << min << std::endl;
return 0;
}
```
函数模板 `findmin` 接收一个元素类型为 `T` 的数组指针 `arr`,数组长度 `len`,和一个整型引用 `index`。它在数组中寻找最小元素,并将最小元素的下标通过 `index` 返回。函数返回值为最小元素的地址。
在 `main` 函数中,我们首先从标准输入读入十个整数,并将它们存储在名为 `arr` 的数组中。然后,我们调用 `findmin` 函数,将最小元素的地址保存在名为 `min` 的指针中,将最小元素的下标保存在名为 `min_index` 的整数中。最后,我们输出最小元素的值、下标和地址。
阅读全文