输出较大或较小值 PTA C++ 练习

输出较大或较小值

2-b 输出较大或较小值(函数模板) (20分)

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

函数接口定义:

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 0 6 9
3 1 a A
4 0 3.7 6.8
0

输出样例:

9
6
a
3.7

题解思路:

思路很简单, 任务为 0 输出较小值, 为 1 输出较大值, 也很简单, 一行代码, 三个三元表达式, AC, 附 AC 结果.

参考代码:

template<class T>
T m(T t, int task){
    T t_1, t_2;
    cin >> t_1 >> t_2;
    return task == 0? (t_1 < t_2 ? t_1 : t_2) :(t_1 > t_2 ? t_1 : t_2);
}

结果:

复盘:

很多私聊我说提交结果不对, 给他解决了半天, 最后发现题目就不对, 你们大部分是学生吧, 问的还都一样, 我和你们题都不一样, 怎么可能提交AC呢?

现在同学很浮躁, 收一收心吧! 关注或私聊或留言的同学遇到的问题, 我私下都给解决了. 你们增强增强编码能力, 这道题改 1 步就能成功.

如果有其他问题, 欢迎下方留言或私聊, 看到全力解决.

猜你喜欢

转载自www.cnblogs.com/swyw/p/12395283.html