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