鱼C论坛

 找回密码
 立即注册
查看: 1055|回复: 4

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

[复制链接]
发表于 2021-9-25 22:46:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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[10],i,x;
        for(i=0;i<8;i++)
        {
                scanf("%d",&num[i]);
        }
//        x=max8(num[1],num[2],num[3],num[4],num[5],num[6],num[7],num[0]);
        x=max2(num[7],max2(num[6],max2(num[5],max2(num[4],max2(num[3],max2(num[2],max2(num[1],max2(num[0]))))))));
        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        [Error] too few arguments to function 'int max2(int, int)'
  •                   5        5            E:\DevC\C项目\test6_3.cpp        [Note] declared here
  • 想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复

    使用道具 举报

    发表于 2021-9-25 22:52:36 | 显示全部楼层
    最后一个 num[0]那里少一个参数
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复 支持 1 反对 0

    使用道具 举报

    发表于 2021-9-26 08:56:34 | 显示全部楼层
    本帖最后由 村里小黑 于 2021-9-26 09:13 编辑

    问题出在这一句,你一层一层套的太多,导致你最后在调用max2(num[0])时,只传了一个参数,而你定义的时max(int a,int b),他检测到你少一个实参所以报错
    x=max2(num[7],max2(num[6],max2(num[5],max2(num[4],max2(num[3],max2(num[2],max2(num[1],max2(num[0]))))))));
    而且确实不建议这么去写,因为看起来狠麻烦,我没看错的话是为了比较出数组里最大的数。
    参考代码:
    int x=0;
     x = max(num[0],0);
    for(i=1;1<10;i++)
    {
        x = max(num[i],x);
    }
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复 支持 1 反对 0

    使用道具 举报

     楼主| 发表于 2021-9-26 10:49:36 | 显示全部楼层
    村里小黑 发表于 2021-9-26 08:56
    问题出在这一句,你一层一层套的太多,导致你最后在调用max2(num[0])时,只传了一个参数,而你定义的时max ...
            x=max2(num[7],max2(num[6],max2(num[5],max2(num[4],max2(num[3],max2(num[2],max2(num[1],num[0])))))));


    感谢您的回复,我成功找到了问题,并成功解决了,在最里面的嵌套的函数我少了一个参数。
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复 支持 反对

    使用道具 举报

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

    没关系,建议你改进一下,我是一个括号一个括号扒开看的,这么写确实很容易写错
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

    GMT+8, 2024-11-15 22:47

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表