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资料











浙公网安备 33010602011771号