首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C错误:这里不允许函数定义,我已经将函数放在int main(void)之上,擦除括号,错误仍然存在。

C错误:这里不允许函数定义,我已经将函数放在int main(void)之上,擦除括号,错误仍然存在。
EN

Stack Overflow用户
提问于 2020-07-31 09:50:04
回答 1查看 79关注 0票数 0

我正试图解决这个名为CS50的题为Credit的问题,而且我对编码还不熟悉,所以我非常感谢您能帮我找出我在这里输入的错误。我试图计数从用户提示的数字的数字,并且在编译后我一直收到这个错误。错误是ab.c:20:5: error:在这里是不允许的。谢谢你的回答!

代码语言:javascript
复制
#include <stdio.h>
#include <cs50.h>

int get_number_digits(long x);
int main(void)

{

    //Prompt for input
    long digits = get_long("Card Number: \n");

    //Count the digits 
    int count = get_number_digits(digits);
    


    //Function for getting number of digits
    int get_number_digits(long x)
    {
         int number;
         for (number = 0; x > 0; number++)
      {
         x = x / 10;
      }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-31 09:56:20

嵌套函数不是标准C的一部分,但是它们可能会根据您使用的编译器工作。所以最好把get_number_digits函数放在main之外。

您忘记将return语句放入get_number_digits函数中。

代码语言:javascript
复制
#include <stdio.h>
#include <cs50.h>

int get_number_digits(long x);
int main(void)

{

    //Prompt for input
    long digits = get_long("Card Number: \n");

    //Count the digits 
    int count = get_number_digits(digits);

}

//Function for getting number of digits
int get_number_digits(long x)
{
     int number;
     for (number = 0; x > 0; number++)
  {
     x = x / 10;
  }
  return number;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63189521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档