c++用"函数模板"求数组下标为奇数的元素的最大值与最小值,请填空。

//用"函数模板"求数组下标为奇数的元素的最大值与最小值,请填空。

#include

#define itemNum(a) sizeof(a)/sizeof(a[0])

//函数模板原型声明:求数组下标为奇数的元素的最大值与最小值。



int main() {

int a1[]={12,80,78,62,63,89,5,9,89,23,1,6,33,54,30,97,55,33,25,29,4,22};

int max1,min1;

maxMin(______________________________);

std::cout<<max1<<','<<min1<<std::endl ;

double a2[]={1.2,8.1,7.8,6.2,8.9,0.9,8.9,2.2,.1,3.3,5.4,3.0,9.7,7.7,7.};

double max2,min2;

maxMin(______________________________);

std::cout<<max2<<','<<min2<<std::endl ;

return 0;

}

//函数模板定义:求数组下标为奇数的元素的最大值与最小值。











输入

输出

第1行:整型数组a1下标为奇数的元素的最大值与最小值,中间用逗号分隔

第2行:双精度数组a2下标为奇数的元素的最大值与最小值,中间用逗号分隔

输入样例 1


输出样例 1

##,##
9.9,9.9

#include <iostream>

#define itemNum(a) sizeof(a)/sizeof(a[0])

template<class T>
void maxMin(T * arr, size_t n, T& max, T& min);

int main() {
int a1[]={12,80,78,62,63,89,5,9,89,23,1,6,33,54,30,97,55,33,25,29,4,22};
int max1,min1;
maxMin(a1, itemNum(a1), max1, min1);
std::cout<<max1<<','<<min1<<std::endl ;
double a2[]={1.2,8.1,7.8,6.2,8.9,0.9,8.9,2.2,.1,3.3,5.4,3.0,9.7,7.7,7.};
double max2,min2;
maxMin(a2, itemNum(a2), max2, min2);
std::cout<<max2<<','<<min2<<std::endl ;
return 0;
}

template<class T>
void maxMin(T * arr, size_t n, T& max, T& min)
{
    if (n < 1) return;
    max = min = arr[1];
    for (int i = 1; i < n; i += 2)
    {
        if ((max) < arr[i]) max = arr[i];
        if ((min) > arr[i]) min = arr[i];
    }
}