6-15 输出较大或较小值(函数模板)

6-15 输出较大或较小值(函数模板)

分数 10
作者 何振峰
单位 福州大学

实现一个函数模板,它能够根据需要返回两个给定值中的较小值或较大值。
本程序处理的输入每行包括四个输入(最后一行除外):
第一个为输入数据的类型:1表示整型,2表示长整型,3表示字符型,4表示浮点型,0表示输入结束;
第二个数字为比较的类型,1表示返回较大值,2表示返回较小值;
第三个和第四个数是进行比较的数。

函数接口定义:

template<class T>
T m(T t, int task);
裁判测试程序样例:
#include <iostream>
using namespace std;
template <class T>
T m(T, int);

int main()
{
    int ty, task;
    cin>>ty;
    while(ty!=0)    {
        cin>>task;
        switch(ty){
            case 1:cout<<m(0,task)<<endl;break;
            case 2:cout<<m(0L,task)<<endl;break;
            case 3:cout<<m('0',task)<<endl;break;
            case 4:cout<<m(0.1, task)<<endl;
        }
       cin>>ty;
    }
    return 0;
}
/* 请在这里填写答案 */

输入样例:

1 1 6 9
2 2 6 9
3 1 a A
4 2 3.7 6.8
0

输出样例:

9
6
a
3.7

参考代码

template<class T>  //定义T为一个类型,就把它当成类似int这样的数据类型就行,它会根据输入数据的类型自行调整
T m(T t, int task)  //第一个T表示最后返回值类型为T;  第二个T与int对应,T修饰t,int修饰task
{
    T a,b;    //定义a,b
    cin>>a>>b;//输入要比较的两个数
    if( task == 1 )    //返回较大值
        return a>b ? a : b;
    else if( task == 2 )    //返回较小值
        return a<b ? a : b;
}















     

函数模板PPT资料











posted @ 2024-03-09 11:45  yesno233233  阅读(368)  评论(0)    收藏  举报