设计一个 findmin 函数,该函数能寻找数组中的最小元素,将该元素的下标通过参数返回,函数返回值为其地址值。考虑整型、小数等不同类型的数组。程序由三个函数组成,输入函数input获取十个数,输出函数output输出最小值及其下标,处理函数findmin寻找最小值,函数模板原型: template<typename T> T* findmin(int *minIndex, T a[], int size=1
时间: 2024-01-24 11:17:54 浏览: 82
下面是一个实现该功能的示例代码:
```C++
#include <iostream>
using namespace std;
template<typename T>
T* findmin(int *minIndex, T a[], int size=1)
{
T *minValue = &a[0];
*minIndex = 0;
for (int i = 1; i < size; i++)
{
if (a[i] < *minValue)
{
*minIndex = i;
minValue = &a[i];
}
}
return minValue;
}
void input(int *a, int size)
{
for (int i = 0; i < size; i++)
{
cout << "请输入第" << i + 1 << "个数:";
cin >> a[i];
}
}
void output(int minIndex, int *minValue)
{
cout << "最小值为:" << *minValue << ",其下标为:" << minIndex << endl;
}
int main()
{
const int SIZE = 10;
int a[SIZE];
input(a, SIZE);
int minIndex;
int *minValue = findmin(&minIndex, a, SIZE);
output(minIndex, minValue);
return 0;
}
```
该程序中,使用了函数模板来支持不同类型的数组。函数模板中,参数T表示数组元素的类型,使用指针类型的minValue来指向最小元素的位置,并将其地址返回。同时,通过参数传递最小元素的下标minIndex。
在main函数中,首先调用input函数获取用户输入的数组。然后调用findmin函数寻找最小值,并将其地址赋给minValue。最后,调用output函数输出最小值及其下标。
阅读全文