too few actual parameters 求解答!!!

#include<stdio.h>voidmain(){intmax(intx,inty,intz);inta,b,c;printf("输入是那个数值比较:");scan... #include<stdio.h>
void main()

{
int max(int x,int y,int z);
int a,b,c;
printf("输入是那个数值比较:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
printf("最大的是%d", max(max(a,b),c));

}
int max(int a,int b,int c)
{
if(a>b)
{
if(b>c)
return(a);
}
else if(b>c)
return(b);
else
return(c);

}
展开
 我来答
匿名用户
推荐于2017-09-28
展开全部
#include<stdio.h>
void main()

{
    int max(int x,int y,int z);
    int a,b,c;
    printf("输入是那个数值比较:");
    scanf("%d",&a);
    scanf("%d",&b);
    scanf("%d",&c);
    printf("最大的是%d", max(a,b,c));

}
int max(int a,int b,int c)
{
    if(a>b)
    {
        if(b>c)
            return(a);
    }
    else if(b>c)
        return(b);
    else
        return(c);

}

第11行错,你传参给max的时候,只给两个参数,调用了两次。但实际上你定义max的时候,需要三个参数,一次找三个参数的最大值。所以,编译时,提示你给的实参太少(too few actual parameters )

追问
你执行一次,最后的数值写最大的,出来的结果是错误的....
追答

亲,你逻辑上还有纰漏,没有覆盖所有的可能性分支。

#include<stdio.h>
void main()
 
{
    int max(int x,int y,int z);
    int a,b,c;
    printf("输入是那个数值比较:");
    scanf("%d",&a);
    scanf("%d",&b);
    scanf("%d",&c);
    printf("最大的是%d", max(a,b,c));
 
}
int max(int a,int b,int c)
{
    if(a>b)
    {
        if(b>c)
            return(a);
        else
            if(c>a)
                return c;
            else
                return a;
    }
    else if(b>c)
        return(b);
    else

        return(c);
 
}

这样就ok了。如果三个数字最大值的计算为难你了,你可以些两个的版本,比如:

#include<stdio.h>
void main()
 
{
    int max(int x,int y);
    int a,b,c;
    printf("输入是那个数值比较:");
    scanf("%d",&a);
    scanf("%d",&b);
    scanf("%d",&c);
    printf("最大的是%d", max(max(a,b),c));
 
}
int max(int a, int b)
{
    return a>b?a:b;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式