求三个整数最大值,C语言编写使用max函数

#include<stdio.h>intmain(){intmax(intx,inty,intz);inta,b,c,d;scanf("%d,%d,%d",&a,&b,&... #include<stdio.h>
int main()
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("%d\n",d);
return 0;
}
int max(int x,int y,int z)
{
int w;
if(x>y>z)
{
w=x;
}
else
{
if(y>x>z)
{
w=y;
}
else
{
w=z;
}
}
return (w);
}
这个代码运行只能是输出第三个值,为什么错在哪了?
展开
 我来答
wenjie1024
2016-11-14 · TA获得超过2381个赞
知道大有可为答主
回答量:1737
采纳率:72%
帮助的人:862万
展开全部

改正后的:

#include<stdio.h>
int main(){
    int max(int x,int y,int z);
    int a,b,c,d;
    scanf("%d,%d,%d",&a,&b,&c);
    d=max(a,b,c);
    printf("%d\n",d);
    return 0;
}
int max(int x,int y,int z){
    int w;
    if(x>y&&x>z){
        w=x;}
    else{
        if(y>x&&y>z){
            w=y;
        }else{
            w=z;
        }
    }
    return w;
}

优化后的:

#include<stdio.h>
int main(){
    int max(int x,int y,int z);
    int a,b,c,d;
    scanf("%d,%d,%d",&a,&b,&c);
    d=max(a,b,c);
    printf("%d\n",d);
    return 0;
}
int max(int x,int y,int z){    
    if(x>y&&x>z) return x;
if(y>x&&y>z) return y;    
    return z;
}
sorthoth
推荐于2018-02-26 · TA获得超过685个赞
知道小有建树答主
回答量:531
采纳率:42%
帮助的人:299万
展开全部

大于号是两个数比较用的,不能三个数连着用

而且就算你能连着用,x>y>z时x最大,x>z>y时怎么办?

if (x > y && x > z)
    w = x;
else if (y > x && y > z)
    w = y;
else
    w = z;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式