注册 登录
编程论坛 VC++/MFC

运行无误,输出结果为负数???????

笛c 发布于 2013-05-18 15:18, 1906 次点击
#include<iostream>
using namespace std;
int compare(int x,int y,int z)
    {int max,a,b,c;
    if(a>c)max=a;
    else if(b>c)max=b;
    else max=c;
    return max;
    }
    double compare(double x,double y,double z)
    {
    double max,a,b,c;
    if(a>c)max=a;
    else if(b>c)max=b;
    else max=c;
    return max;
    }
 long compare( long int x, long int y,long int z)
{
    long max,a,b,c;
    if(a>c)max=a;
    else if(b>c)max=b;
    else max=c;
    return max;
}
int main()
{ int a,b,c,d;
cin>>a>>b>>c;
d=compare(a,b,c);
cout<<"max="<<d;
double a1,b1,c1,d1;
cin>>a1>>b1>>c1;
d1= compare(a1,b1,c1);
cout<<"max="<<d1<<endl;
long a2,b2,c2,d2;
cin>>a2>>b2>>c2;
d2=compare(a2,b2,c2);
cout<<"max="<<d2<<endl;
}
13 回复
#2
笛c2013-05-18 15:56
没有人会吗?急急急!!!!!!!!!!!!!!
#3
yuccn2013-05-18 20:30
int compare(int x,int y,int z)
     {int max,a,b,c;
     if(a>c)max=a;
     else if(b>c)max=b;
     else max=c;
     return max;
     }

这是什么代码啊?max = a; return max;abc 都是没有初始化的。这些变量的数值都是垃圾数字,随机来的。
#4
笛c2013-05-19 10:55
原来如此,谢了
#5
天楚2013-05-19 20:13
那怎么初始化?我不知道怎么去初始化
#6
lzj125302013-05-20 13:33
用传引用方式赋值
int compare(int x,int y,int z)====>int compare(int &a,int &b,int &c)
这样传递参数
#7
邓士林2013-05-20 14:36
回复 4楼 笛c
这个要好好理解,另外这贴可以放在c语言区,完全与MFC背离啊
#8
尹金魁20312013-05-23 09:43
刘大哥,本人并没有发现什么不同。请看这个:改造版:

#include<iostream>
using namespace std;
int compare(int x,int y,int z)
    {int max,a,b,c;
    if(a>c)max=a;
    else if(b>c)max=b;
    else max=c;
    return max;
    }
double compare(double x,double y,double z)
    {
    double max,a,b,c;
    if(a>c)max=a;
    else if(b>c)max=b;
    else max=c;
    return max;
    }
long compare( long int x, long int y,long int z)
{
    long max,a,b,c;
    if(a>c)max=a;
    else if(b>c)max=b;
    else max=c;
    return max;
}

int main()
{ int a,b,c,d;
cin>>a>>b>>c;
d=compare(a,b,c);
cout<<"max="<<d;
double a1,b1,c1,d1;
cin>>a1>>b1>>c1;
d1= compare(a1,b1,c1);
cout<<"max="<<d1<<endl;
long a2,b2,c2,d2;
cin>>a2>>b2>>c2;
d2=compare(a2,b2,c2);
cout<<"max="<<d2<<endl;
}
祝你好运!莫急!
#9
尹金魁20312013-05-23 09:48
原来是比较大小出问题了。2数与3数比较大小略为不同。你就给俺分吧!
#10
一只程序猿2013-05-26 20:48
楼主貌似形参都没有用上啊,调用这个函数就是个摆设了。。
#11
一只程序猿2013-05-26 20:50
你把abc的声明去掉,直接用xyz试试吧。
#12
笛c2013-05-28 10:25
回复 9楼 尹金魁2031
我的歌擦,我撤销帖子了,没分,这个是我没有初始化变量,你也要注意了
#13
hpshuaia2013-06-07 08:08
是的。应该是用
int compare(int x,int y,int z)
    {int max;
    if(x>z)max=x;
    else if(y>z)max=y;
    else max=z;
    return max;
    }
#14
lu2kuluoluo2013-06-13 09:53
没什么问题,除了 初始化~
1