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

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];
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。