一个求a,b,c三个变量最大值的小程序中的一点问题

书上有个题目,让求a,b,c三个变量中最大值.下面这个程序,为什么输入1,2,3,max的值会有965?main(){inta,b,c,d;scanf("%d,%d,%d... 书上有个题目,让求a,b,c三个变量中最大值. 下面这个程序,为什么输入1,2,3,max的值会有965?
main()
{int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d",d);
}
int max(int x,int y,int z)
{int w;
if(x>y>z)w=x;
if(y>x>z)w=y;
if(z>x>y)w=z;
return(w);
}
这个程序能够正常通过检验,但我怎么想也想不出,1,2,3 怎么会得出那么大的值
谢谢你的帮助,但我将
if(x>y>z)w=x;
if(y>x>z)w=y;
if(z>x>y)w=z;改成
if(x>y && y>z) w=x; 其他的均不变,运算结果是一样的.
展开
 我来答
阳光上的桥
2009-05-29 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65815
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
你的程序是错的,下面这样的语句不会得到你想要的结果:
if(x>y>z)w=x;
应该写为:
if(x>y && y>z) w=x;

你的if判断没有列举出所有的情况,你返回的w可能是没有赋值的,正确函数应该如下编写:
int max(int x,int y,int z)
{int w;
w=x;
if(y>w)w=y;
if(z>w)w=z;
return(w);
}
帐号已注销
2009-05-29 · TA获得超过337个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:202万
展开全部
正确的max函数定义如下:仔细看,二楼的少了一对大括号,
int max(int x,int y,int z)
{int w;
w=x;
if(y>w)
{w=y;
if(z>w)w=z;
}
return(w);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锤子锤子大锤头
2009-05-29 · TA获得超过161个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:164万
展开全部
这个…是易范的错误,比较运算符不能像那样连起来写…必须写成…&& 的形式…
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liu0feng0hua
2009-05-28
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
要把所有的>都改成&&才是正确的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式