错误:函数'printDay';的参数太少;(C语言) 问题:

错误:函数'printDay';的参数太少;(C语言) 问题:,c,compiler-errors,C,Compiler Errors,我对C相当陌生,当我试图编译它(GCC)时,我遇到了这个错误: 错误:函数“printDay”的参数太少 我的问题是: 这是什么意思 我该如何解决这个问题 这不是我的全部代码,只是我面临的这个错误。 提前谢谢 代码 #包括 #包括 #包括 #包括 #定义最长工作日31天 #定义最小天数1 #定义最长12个月 #定义最小月数1 枚举月数 { jan=1, 2月, 破坏 四月,, 也许 六月,, 7月, 八月, 九月, 十月, 十一月, 12月 }; 每周枚举日 { 太阳=1, 周一, 星期二, 结

我对C相当陌生,当我试图编译它(GCC)时,我遇到了这个错误:

错误:函数“printDay”的参数太少

我的问题是:

  • 这是什么意思
  • 我该如何解决这个问题
  • 这不是我的全部代码,只是我面临的这个错误。 提前谢谢

    代码
    #包括
    #包括
    #包括
    #包括
    #定义最长工作日31天
    #定义最小天数1
    #定义最长12个月
    #定义最小月数1
    枚举月数
    {
    jan=1,
    2月,
    破坏
    四月,,
    也许
    六月,,
    7月,
    八月,
    九月,
    十月,
    十一月,
    12月
    };
    每周枚举日
    {
    太阳=1,
    周一,
    星期二,
    结婚,
    清华大学,
    星期五,
    坐
    };
    int输入();
    作废检查(整数月,整数日);
    无效打印日(整数月、整数日、整数第一天);
    int main()
    {
    printf(“您好!欢迎使用日计算器!\n”);
    printDay(input());
    返回(0);
    } 
    /*此函数接受用户的输入
    输入:无
    产出:第一天
    */ 
    int输入()
    {
    enum daysOfWeek day=0;
    enum monthsof year month=0;
    int firstDay=0;
    printf(“输入要检查的月份:(1-一月、2-二月等)”;
    scanf(“%d”和“月”);
    printf(“输入要检查的日期:”);
    scanf(“%d”、&day);
    支票(月、日);
    printf(“输入月1日的工作日:(1-星期日、2-星期一等)”;
    scanf(“%d”、&firstDay);
    第一天返回;
    }
    /*
    此函数用于检查输入的有效性
    输入:日、月
    输出:无
    */
    作废检查(整数月,整数日)
    {
    如果(月>最长月|月<最短月和日>最长日|日<最短日)
    {
    printf(“无效输入,请重试\n”);
    输入();
    }
    如果(月==二月和日>28)
    {
    printf(“无效输入,请重试\n”);
    输入();
    }
    如果(月==1月和日>31)
    {
    printf(“无效输入,请重试\n”);
    输入();
    }
    }
    无效打印日(整数月、整数日、整数第一天)
    {
    int date=0;
    日期=天-第一天;
    开关(日)
    {
    孙先生:
    printf(“%d.%d将是一个星期日”,日,月);
    打破
    违约:
    打破
    }
    }
    
    我想我已经找到了错误的根源:

    在第45行,您有
    printDay(input())
    这让我认为这是一个错误,因为消息是“错误:函数'printDay'的参数太少”,而您只传递了一个参数


    希望有帮助

    我想我已经找到了错误的根源:

    在第45行,您有
    printDay(input())
    这让我认为这是一个错误,因为消息是“错误:函数'printDay'的参数太少”,而您只传递了一个参数

    希望有帮助

  • 这是什么意思
  • “错误:函数'printDay'的参数太少”表示在此处调用时,您将错误数量的参数传递给了
    printDay

    printDay(input());
    
    您正在传递一个参数,但您的
    printDay
    声明显示它需要3个参数:

    void printDay(int month, int day, int firstDay);
    
  • 我该如何解决这个问题
  • 您可以通过传递正确数量的参数来修复它,例如:

    int month = ...;
    int day = ...;
    int firstDay = ...;
    printDay(month, day, firstDay);
    
  • 这是什么意思
  • “错误:函数'printDay'的参数太少”表示在此处调用时,您将错误数量的参数传递给了
    printDay

    printDay(input());
    
    您正在传递一个参数,但您的
    printDay
    声明显示它需要3个参数:

    void printDay(int month, int day, int firstDay);
    
  • 我该如何解决这个问题
  • 您可以通过传递正确数量的参数来修复它,例如:

    int month = ...;
    int day = ...;
    int firstDay = ...;
    printDay(month, day, firstDay);
    
    您使用
    3
    参数声明(并定义)函数
    printDay

    void printDay(int month, int day, int firstDay);
    
    但您仅使用
    1
    参数调用它

    printDay(input());
    
    (在类型为
    int
    的情况下,函数
    input()
    与C中的所有函数一样,仅返回
    1
    值)。

    您使用
    3
    参数声明(并定义)函数
    printDay

    void printDay(int month, int day, int firstDay);
    
    但您仅使用
    1
    参数调用它

    printDay(input());
    

    (在类型
    int
    的情况下,函数
    input()
    与C中的所有函数一样只返回
    1
    值)。

    无法比@tuple\u cat更好地解释!再也解释不出比@tuple\u cat更好的了!