SimpleMLXG 2020-04-14 09:07 采纳率: 0%
浏览 523
已采纳

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

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-04-14 18:09
    关注
    #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];
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功