//用"函数模板"求数组下标为奇数的元素的最大值与最小值,请填空。
#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];
}
}