求一个c++编程编写重载函数min可分别求取2个整数、3个整数、2个双精度数和3个双精度数的最小值。不要max的

如题所述

这个是我以前做实验的时候写的,是求较大值的,你改一下判断条件就能求较小值了。
#include<iostream>
using namespace std;
int Max1(int m,int n);
int Max1(int m,int n,int o);
double Max1(double m,double n);
double Max1(double m,double n,double o);
void main()
{
int a[2],b,c,d; char ch;
double h,i,k;
A: cout<<"请输入要比较的数的个数:(两个或三个)"<<endl;
cin>>a[0];
if(a[0]!=2&&a[0]!=3) {
cout<<"对不起,你输入错误,请重新选择。"<<endl;
goto A;
}
B: cout<<"请输入要比较的数的类型:(1-int,2-double)"<<endl;
cin>>a[1];
switch(a[0]){
case 2: {
if(a[1]==1) {
cout<<"请输入要比较的两个int型数:" <<endl;
cin>>b>>c;
cout<<"较大的数为:"<<Max1(b,c)<<endl;
break;
}
else if(a[1]==2) {
cout<<"请输入要比较的两个double型数:" <<endl;
cin>>h>>i;
cout<<"较大的数为:"<<Max1(h,i)<<endl;
break;
}
else {
cout<<"对不起,你输入错误,请重新选择。"<<endl;
goto B;
}
}
case 3: {
if(a[1]==1) {
cout<<"请输入要比较的三个int型数:"<<endl;
cin>>b>>c>>d;
cout<<"较大的数为:"<<Max1(b,c,d)<<endl;
break;
}
else if(a[1]==2) {
cout<<"请输入要比较的三个double型数:"<<endl;
cin>>h>>i>>k;
cout<<"较大的数为:"<<Max1(h,i,k)<<endl;
break;
}
else{
cout<<"对不起,你输入错误,请重新选择。"<<endl;
goto B;
}
}
}
cout<<"重新运行?Y or N?"<<endl<<"输入Y重新运行,输入其它字符退出。"<<endl;
cin>>ch;
if(ch=='y'||ch=='Y') main();
else exit;
system("pause");
}
int Max1(int m,int n)
{
if(m>n) return m;
else return n;
}
int Max1(int m,int n,int o)
{
int x;
x=Max1(m,n);
x=Max1(x,o);
return (x);
}
double Max1(double m,double n)
{
if(m>n) return m;
else return n;
}
double Max1(double m,double n,double o)
{
double x;
x=Max1(m,n);
x=Max1(x,o);
return (x);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-10-18
#include <iostream>
using namespace std;

int min(int a,int b)
{
return (a<b?a:b);
}

int min(int a,int b,int c)
{
return min(a,min(b,c));
}

double min(double a,double b)
{
return (a<b?a:b);
}

double min(double a,double b,double c)
{
return min(a,min(b,c));
}

int main()
{
int a,b,c;
float d,e,f;
cout<<"请输入三个整数"<<endl;
cin>>a;
cin>>b;
cin>>c;
cout<<"请输入三个双精度数"<<endl;
cin>>d;
cin>>e;
cin>>f;
cout<<"a,b中较小的是:"<<min(a,b)<<endl;
cout<<"d,e中较小的是:"<<min(d,e)<<endl;
cout<<"最小的整数是:"<<min(a,b,c)<<endl;
cout<<"最小的双精度数是:"<<min(d,e,f)<<endl;
return 0;
}本回答被提问者采纳
相似回答