【问题标题】:For loop function too few arguments to function对于循环函数,函数的参数太少
【发布时间】:2018-09-06 18:26:09
【问题描述】:

您好,我对编程有点陌生,我刚刚遇到了一个名为“函数参数太少”的新错误,但不知道这意味着什么。我一直试图弄清楚代码到底有什么问题,但到目前为止我还没有运气。有什么建议吗?提前致谢!

int sumRange(int lowerNumber, int higherNumber);

int main()
{
   int lowerNumber,
       higherNumber,
       sum;

   scanf("%d%d", lowerNumber, higherNumber);

   printf("\nThe smaller number is %d and the larger number is %d", lowerNumber,higherNumber);
   printf("\nThe sum number of all ranges for both numbers is: %d", sumRange(sum));
}
int sumRange(int lowerNumber, int higherNumber)
{
   int x,
       total;

   for(x = lowerNumber; x <= higherNumber; x++)
   {
      total = total + x;
   }

 return x;
}

【问题讨论】:

  • 仔细检查对sumRange 的调用。需要做些什么?应该怎么做?
  • 请不要为了响应cmets而实时编辑代码。只需发布显示问题的Minimal, Complete, and Verifiable example
  • 郑重声明,scanf("%d%d", lowerNumber, higherNumber); 不正确,应该是scanf("%d%d", &amp;lowerNumber, &amp;higherNumber); 另一个错误由@RodrigoDeOliveiraSiqueira 回答。

标签: c error-handling


【解决方案1】:

你必须初始化“total”。

    int sumRange(int lowerNumber, int higherNumber)
{
   int x,
       total;

   total = 0;
   for(x = lowerNumber; x <= higherNumber; x++)
   {
      total = total + x;
   }

 return total;
}

【讨论】:

    【解决方案2】:

    函数 main() 缺少初始 { 和最终 }。 此外,在函数 sumRange 中,您可能希望返回总计,而不是 x。

    另外,在"printf("\n两个数字的所有范围的总和为:%d", sumRange(sum));" 您只使用一个参数调用 sumRange。您应该使用两个参数调用它: sumRange(lowerNumber,higherNumber)

    【讨论】:

    • 好的,我对代码做了一些更正,但在编译时我仍然收到同样的错误“参数太少”
    • 请发布确切的错误消息,尽管我们不知道它在哪一行,因为您没有发布整个代码 - 或者您可能发布了但未能 #include 任何库标题。 @EugeneSh。已对问题发表评论。
    • @PaulDann 可能与int sumRange(int lowerNumber, int higherNumber);sumRange(sum) 有关。正如尤金最初提到的那样
    【解决方案3】:

    我刚刚遇到了一个名为“函数参数太少”的新错误,但不知道这是什么意思

    这意味着该函数没有提供其定义中存在的所有参数。

    函数在这里定义:

    int sumRange(int lowerNumber, int higherNumber);
    

    如您所见,定义中有两个参数:int lowerNumber, int higherNumber。但是您在这里使用该功能:

    printf("\nThe sum number of all ranges for both numbers is: %d", sumRange(sum));
    

    只为该函数提供一个参数。由于您正在使用 scanf 读取参数,因此正确的用法是:

    printf("\nThe sum number of all ranges for both numbers is: %d", sumRange(lowerNumber, higherNumber));
    

    【讨论】:

      猜你喜欢
      • 2017-08-18
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 2017-04-01
      • 2018-04-22
      • 2021-03-19
      相关资源
      最近更新 更多