猴子也疯狂中文版:帮我找一个ERROR

来源:百度文库 编辑:高考问答 时间:2024/04/29 16:42:16
#include<iostream.h>
int max(int a,int b);
int max(int a,int b,int c);
float max(float a, float b);
void main()
{

cout<<max(34,56)<<endl;
cout<<max(233,543,565)<<endl;
cout<<max(43.32,34.54)<<endl;
}
int max(int a,int b)
{
int t=(a>b?a:b);
return t;
}
int max(int a,int b,int c)
{
int t=max(a,b);
int f=max(t,c);
return f;
}
float max(float a,float b)
{
float t=(a>b?a:b);
return t;
}

cout<<max((float)43.32,(float)34.54)<<endl;
将double类型的强制转换成float

问题出在这里吧:
int max(int a,int b,int c)
{
int t=max(a,b);
int f=max(t,c);
return f;
}
这个max(a,b)的调用有歧义吧,因为前面定义了两个
int max(int a,int b,int c);
float max(float a, float b);
函数。

int max(int a,int b,int c)
{
int t=max(a,b);
int f=max(t,c);
return f;
}
不能调用max(a,b)函数你该为:
int max(int a,int b,int c)
{
int t=a>b?a:b;
int f=t>c?t:c;
return f;
}