C++程序问题,拜托高手帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/05/14 00:55:51
#include <iostream>
using namespace std;
int main()
{int max(int a,int b,int c);
double max(double a,double b,double c);
long max(long a,long b,long c);
int i1,i2,i3,i;
cin>>i1>>i2>>i3;
i=max(i1,i2,i3);
cout<<i<<endl;
return 0;
double d1,d2,d3,d;
cin>>d1>>d2>>d3;
d=max(d1,d2,d3);
cout<<d<<endl;
return 0;
long g1,g2,g3,g;
cin>>g1>>g2>>g3;
g=max(g1,g2,g3);
cout<<g<<endl;
return 0;
}
int max(int a,int b,int c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
double max(double a,double b,double c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
long max(long a,long b,long c)
{
if(b>a) a=b;
if(c>a) a=c;
return a;
}
这是一个利用函数重载的问题
我的问题是,为什么当输入的不是整型时,输出结果不对
把主函数里的retu

呵呵.一看就看到问题之所在了.首先楼主可能没明白一个问题.那就是return 0是代表该函数结束的意思.放主函数里当然遇到第一个return 0主函数就结束了怎么执行下面呢?

补充:return是返回值的意思.你定义主函数是int 型当然就要返回一个值.通常我们规定为0;当一个函数(包括主函数)遇到return语句时就预示着这个函数结束了.不管return后面还有什么语句都通通不执行了.也就是执行到return截止!!

把主函数里的return 0只保留最后一个或者连最后一个也不保留有什么区别呢?
::只保留最后一个当然就会执行到最后一个return为止咯.下面的就不执行了被抛弃了.一个也不保留的话如果你定义主函数为void main就会执行到主函数的最后一个}为止....如果是int main就会报错.因为int 必须有返回值

因为在你第一个return 0;时程序就结束了

#include <iostream>
using namespace std;
int main()
{
int max(int a,int b,int c);
double max(double a,double b,double c);
long max(long a,long b,long c);
/*
int i1,i2,i3,i;
cin>>i1>>i2>>i3;
i=max(i1,i2,i3);
cout<<i<<endl;
return 0;
long g1,g2,g3,g;
cin>>g1>>g2>>g3;
g=max(g1,g2,g3);
cout<<g<<endl;
return 0;
*/
double d1,d2,d3,d;
cin>>d1>>d2>>d3;
d=ma