熟悉题型——自由设计(比较大小-类模板)

熟悉题型——自由设计(比较大小-类模板)

时间: 1ms        内存:128M

描述:

声明一个类模板,利用它分别实现两个整数、浮点数和字符的比较,求出大数和小数。说明:在类模板外定义各成员函数。

输入:

输入两个整数、两个浮点数和两个字符

输出:

从大到小输出两个整数、两个浮点数和两个字符

示例输入:

3 7
45.78 93.6
a A

示例输出:

7 3
93.60 45.78
a A

提示:

参考答案(内存最优[1092]):



#include<stdio.h>
#include<string.h>
int main()
{
    int a1,a2;
    float b1,b2;
    char str1[3],str2[3];
    scanf("%d %d",&a1,&a2);
    scanf("%f %f",&b1,&b2);
    scanf("%s %s",&str1,&str2);
    if(a1>a2)
        printf("%d %d\n",a1,a2);
    else
        printf("%d %d\n",a2,a1);
    if(b1>b2)
        printf("%.2f %.2f\n",b1,b2);
    else
        printf("%.2f %.2f\n",b2,b1);
    if(strcmp(str1,str2)>0)
         printf("%s %s\n",str1,str2);
    else
         printf("%s %s\n",str2,str1);
    return 0;
}

参考答案(时间最优[0]):


#include <iostream>



#include <iomanip>



using namespace std;



template<class numtype>



class Compare



{



public:



Compare(numtype a,numtype b);



numtype max();



numtype min();



private:



numtype x,y;



};
template<class numtype>
Compare<numtype>::Compare(numtype a,numtype b):x(a),y(b){}


 template<class numtype>
numtype Compare<numtype>::max()
{
	if(x>y)
		return x;
	else 
	return y;
}


template<class numtype>
numtype Compare<numtype>::min()
{
	if(x<y)
		return x;
	else 
	return y;
}

int main()
{
    int i1,i2;
    cin>>i1>>i2;
    Compare<int> cmp1(i1,i2);
    cout<<cmp1.max()<<" "<<cmp1.min()<<endl;
    float f1,f2;
    cin>>f1>>f2;
    Compare<float> cmp2(f1,f2);
    cout<<setiosflags(ios::fixed);
    cout<<setprecision(2);
    cout<<cmp2.max()<<" "<<cmp2.min()<<endl;
    char c1,c2;
    cin>>c1>>c2;
    Compare<char> cmp3(c1,c2);
    cout<<cmp3.max()<<" "<<cmp3.min()<<endl;
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注