Draw-Ranger 发表于 2021-9-25 22:46:13

求教为何我这样嵌套调用函数

本帖最后由 Draw-Ranger 于 2021-9-26 13:41 编辑

//test6_3
#include<stdio.h>
//int max8(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8);
//int max4(int a,int b,int c,int d);
int max2(int a,int b);
int main()
{
        int num,i,x;
        for(i=0;i<8;i++)
        {
                scanf("%d",&num);
        }
//        x=max8(num,num,num,num,num,num,num,num);
        x=max2(num,max2(num,max2(num,max2(num,max2(num,max2(num,max2(num,max2(num))))))));
        printf("%d",x);
        return 0;
}
/*
int max8(int a1,int a2,int a3,int a4,int a5,int a6,int a7,int a8)
{
        int t,m1,m2;
        m1=max4(a1,a2,a3,a4);
        m2=max4(a5,a6,a7,a8);
        t=max2(m1,m2);
        return t;
}

int max4(int a,int b,int c,int d)
{
        int t,m1,m2;
        m1=max2(a,b);
        m2=max2(c,d);
        t=max2(m1,m2);
        return t;
}
*/

int max2(int a,int b)
{
        int t;
        if(a>b)
        {
                t=a;
        }
        else
        {
                t=b;
        }
        return t;
}
[*]报错内容为14      99      E:\DevC\C项目\test6_3.cpp       too few arguments to function 'int max2(int, int)'
[*]                  5      5            E:\DevC\C项目\test6_3.cpp       declared here

灰色的天空 发表于 2021-9-25 22:52:36

最后一个 num那里少一个参数

村里小黑 发表于 2021-9-26 08:56:34

本帖最后由 村里小黑 于 2021-9-26 09:13 编辑

问题出在这一句,你一层一层套的太多,导致你最后在调用max2(num)时,只传了一个参数,而你定义的时max(int a,int b),他检测到你少一个实参所以报错
x=max2(num,max2(num,max2(num,max2(num,max2(num,max2(num,max2(num,max2(num))))))));
而且确实不建议这么去写,因为看起来狠麻烦,我没看错的话是为了比较出数组里最大的数。
参考代码:
int x=0;
x = max(num,0);
for(i=1;1<10;i++)
{
    x = max(num,x);
}

Draw-Ranger 发表于 2021-9-26 10:49:36

村里小黑 发表于 2021-9-26 08:56
问题出在这一句,你一层一层套的太多,导致你最后在调用max2(num)时,只传了一个参数,而你定义的时max ...

        x=max2(num,max2(num,max2(num,max2(num,max2(num,max2(num,max2(num,num)))))));

感谢您的回复,我成功找到了问题,并成功解决了,在最里面的嵌套的函数我少了一个参数。

村里小黑 发表于 2021-9-26 13:07:00

Draw-Ranger 发表于 2021-9-26 10:49
感谢您的回复,我成功找到了问题,并成功解决了,在最里面的嵌套的函数我少了一个参数。

没关系,建议你改进一下,我是一个括号一个括号扒开看的,这么写确实很容易写错
页: [1]
查看完整版本: 求教为何我这样嵌套调用函数