标题:有个错误。。。不知道是什么问题
只看楼主
mercury444
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-4-9
结帖率:100%
已结贴  问题点数:15 回复次数:4 
有个错误。。。不知道是什么问题
# include <stdio.h>

void main()
{
    int max(int x, int y, int w);
    int a, b, c, d;
    scanf("%d, %d, %d", &a, &b, &c);
    d = max(a, b, c);
    printf("max = %d\n", d);
}

int max(int x, int y, int w)
{
    int z;
    if (x > y > w) z = x;
    else z = y;
    else z = w;

    return z;
}


对比两个数的时候这个程序正确,为什么多加了一个数的时候为什么就错了

[ 本帖最后由 mercury444 于 2011-4-15 13:00 编辑 ]
搜索更多相关主题的帖子: max void include return 
2011-04-15 12:57
lingyun0524
Rank: 1
等 级:新手上路
帖 子:3
专家分:6
注 册:2011-4-11
得分:5 
你的是从if(x>y>z)开始错了,C比较3个数的大小是不能这样做的,你可以改成;
int z=x;
if(y>z)
z=y;
if(w>z)
z=w;
return z;
2011-04-15 13:09
lml20080
Rank: 2
等 级:论坛游民
帖 子:20
专家分:96
注 册:2010-8-2
得分:5 
# include <stdio.h>

int main()
{
    int max(int x, int y, int w);
    int a, b, c, d;
    scanf("%d,%d,%d", &a, &b, &c);
    d = max(a, b, c);
    printf("max = %d\n", d);
    return 0;
}

int max(int x, int y, int w)
{
    int z;
    z=x;
    if(y>z)z=x;
    if(w>z)z=w;

    return z;
}


两个else,一个if
2011-04-15 13:10
爱海松涛
Rank: 3Rank: 3
来 自:安徽合肥
等 级:论坛游侠
帖 子:120
专家分:197
注 册:2011-2-25
得分:5 
if (x > y > w) z = x;有问题的吧。。   
    z=x;
    if(y>z)z=x;
    if(w>z)z=w;

   
2011-04-15 13:51
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
得分:0 
呵呵
你的if-else结构中多了个else结构,这样的写法是不对的,你最好将其分开写为好,比如将程序改为下面这个:
# include <stdio.h>

void main()
{
    int max(int x,int y,int w);
    int a,b,c,d;
    scanf("%d%d%d",&a,&b,&c);
    d=max(a,b,c);
    printf("max=%d\n",d);
}

int max(int x, int y, int w)
{
    int z;
    if(x>y&&x>w)
        z=x;
    else if(y>w)
        z=y;
    else z=w;
    return z;
}
输入



输出

呵呵给你个意见哟
以后写程序不要习惯性的打空格,因为用的程序中空格会被程序读入造成不必要的麻烦…………
2011-04-15 15:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336782-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.288977 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved