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

报告相同问题?

悬赏问题

  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥20 wpf datagrid单元闪烁效果失灵