C 如何处理以下错误代码:

C 如何处理以下错误代码:,c,cs50,C,Cs50,我刚刚开始哈佛在线提供的CS50在线课程,我正在努力完成第一周的作业。目标是让用户输入一定数量的更改,并让程序输出进行更改所需的最小硬币总数(四分之一、一角、五分和一分钱)。我的代码不断出现以下错误:错误:预期的标识符或“(”在第一次{。任何帮助都将不胜感激 int coins(int quarters, int dimes, int nickels, int pennies) int quarters = 25; int dimes = 10; int nickels

我刚刚开始哈佛在线提供的CS50在线课程,我正在努力完成第一周的作业。目标是让用户输入一定数量的更改,并让程序输出进行更改所需的最小硬币总数(四分之一、一角、五分和一分钱)。我的代码不断出现以下错误:错误:预期的标识符或“(”在第一次{。任何帮助都将不胜感激

int coins(int quarters, int dimes, int nickels, int pennies)
    int quarters = 25;
    int dimes = 10;
    int nickels = 5;
    int pennies = 1;
    int remain = 0;
    int place_holder;
{
    while (cents >= quarters)
    {
        remain = cents % quarters;
        place_holder = cents - remain;
        coins = coins + (place_holder / quarters);
        cents = remain;
    }

    return coins;
    printf("%i\n", coins);
}

我不确定我最初对错误具体原因的想法是否正确。但我确实看到了多个问题:

  • 您不能将函数本身的名称指定给
    coins
    。您需要声明一个局部变量来保存结果
  • return
    语句之后有一条语句。
    return
    意味着您将退出函数。
    printf
    将永远不会执行。我不确定编译器是否会允许此操作。即使允许,您也不会看到输出

  • 我不确定您用于声明和初始化变量和参数的语法。我认为至少局部变量的声明(
    remain
    place\u holder
    )需要在函数体中,但我不确定
  • 您有一个对
    cents
    的引用,但您没有在任何地方声明它(至少显示了这一点)

当我开始使用一种新的编程语言时,我倾向于开始编写完全不起任何作用的函数,以确保基本语法正确。然后我开始添加单独的行并测试它们的编译和执行。我认为这样可以更容易地理解错误的来源。也许你会发现采取这种方法很有帮助。

硬币
是一个函数,而不是可以指定的变量。欢迎使用StackOverflow!阅读和以及如何发布完整的代码来说明问题,可能会对您有所帮助。
保留
占位符
是局部变量,应该向下移动到第一个变量下方
{
函数的代码块开始的地方。最好参考C语言书。另外,请注意最后一行
printf(“%i\n”,硬币)
将永远无法到达,因为它遵循函数的
返回值。是的。我认为问题在于
硬币
在作为函数时被用作变量。进一步检查后,两者可能都有问题。@Christiangibons不,这不是有效的K&R C。@JohnKugelman同意。我对ex做了进一步的研究实际上,K&R样式是如何工作的,因为我对它只是模糊地熟悉,因为我从来没有在野外见过它。@ChristianGibbons实际上,在K&R定义中,参数数据类型在括号外,里面只是变量名(四分之一、十分之一、五分之一、五分之一)int quarters;…ANSI风格将类型移到了括号内。作为记录,我在C语言中的第一个工作是在PDP-11上使用Mark Williams C编译器…也就是说,我老了。