【问题描述】设计函数模板,对于任何类型的数组(最大元素个数为10),都可以返回该数组中中间元素那个值,如2 3 4 5 1 则返回4;如果是double型的数组1.5 1.1 1.2,则返回1.1;如果是字符型数组a b c d, 返回c 【输入形式】 对于三种类型的数组int double char ,先输入数组元素的个数,然后输入数组中的各元素 【输出形式】 int double char 三个数组中间元素的值
时间: 2024-02-26 20:56:24 浏览: 72
cpp代码-设计一个数组模板类(myvector),完成对int、char、teacher类型元素的管理。teacher类元素为简单数据类型
以下是对应的函数模板的实现,可以满足题目要求:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
template<typename T>
T find_mid(T arr[], int n)
{
sort(arr, arr+n);
return arr[n/2];
}
int main()
{
int n1;
cin >> n1;
int arr1[10];
for(int i=0; i<n1; i++)
cin >> arr1[i];
cout << find_mid(arr1, n1) << endl;
int n2;
cin >> n2;
double arr2[10];
for(int i=0; i<n2; i++)
cin >> arr2[i];
cout << find_mid(arr2, n2) << endl;
int n3;
cin >> n3;
char arr3[10];
for(int i=0; i<n3; i++)
cin >> arr3[i];
cout << find_mid(arr3, n3) << endl;
return 0;
}
```
该程序中,`find_mid` 函数是一个模板函数,可以处理任何类型的数组。该函数将数组元素排序后,返回中间元素的值。在 `main` 函数中,分别输入三种类型的数组,然后调用 `find_mid` 函数计算中间元素的值,并输出结果。
注意,在输入数组元素时,要保证输入的元素个数不超过 10,否则会导致数组越界的错误。
阅读全文