我目前正在构建一个读取数量的程序(假设它的整数为5),然后读出寄存器操作员应该给客户的每种类型的硬币数量。我是澳大利亚人,所以你会注意到50c,20c,10c和5c。
我的问题是我在第10行或PrintDisplay函数之后的行中出现的错误。编译器说:
Declaration terminated incorrectly
但我看到的只是{
?
我是否错误地输入了以下}
或者是否存在另一个我无法看到的错误?
这是代码:(我还包括了stdio.h,但在草案中看起来很奇怪)
void PrintDisplay(void);
{
printf("Enter an amount to calculate change: \n ");
return;
}
int GetChange(void)
{
int change;
scanf("%d%*c", &change);
return(change);
}
int CalculateChange(int change)
{
int FiftyCentAmount = 0;
int TwentyCentAmount = 0;
int TenCentAmount = 0;
int FiveCentAmount = 0;
if(change >= 50)
{
FiftyCentAmount++;
change = (change - 50);
}
else if(change >= 20)
{
TwentyCentAmount++;
change = (change - 20);
}
else if(change >= 10)
{
TenCentAmount++;
change = (change - 10);
}
else if(change >= 5)
{
FiveCentAmount++;
change = (change - 5);
}
return(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmount, int FiveCentAmount);
}
void PrintResult(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmount, int FiveCentAmount)
{
printf("The amount of each coin denomination you should give are: /n");
printf("50c: %d%*c /n", FiftyCentAmount);
printf("20c: %d%*c /n", TwentyCentAmount);
printf("10c: %d%*c /n", TenCentAmount);
printf("5c: %d%*c /n", FiveCentAmount);
return;
}
int main(void)
{
PrintDisplay();
GetChange(int change);
CalculateChange(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmountCentAmount, int FiveCentAmountCentAmount);
PrintResult(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmount, int FiveCentAmount);
return(0);
}
答案 0 :(得分:2)
删除第一行的;
,因为它是一个函数。
正如评论中所述。
答案 1 :(得分:2)
在第一行,您要定义C中的函数和函数定义,不要以分号;
结束。函数声明(没有函数体)。
在第一行删除分号将解决它。
答案 2 :(得分:2)
这么多错误:
<input type="number" (keyup)="setAnswer($event)>
setAnswer(event:any) {
if(event.keyCode == '229') {
// Handle '.' logic
}
}
还有更多错误,但这足以至少让程序编译!
您询问了一个函数修改其参数,以替代返回多个值。
这是一个非常简短的答案:
(深刻的理解只有时间)
void PrintDisplay(void); // Do not put a semi-colon when defining a function.
{
printf("Enter an amount to calculate change: \n ");
return;
}
int CalculateChange(int change)
{
int FiftyCentAmount = 0;
int TwentyCentAmount = 0;
int TenCentAmount = 0;
int FiveCentAmount = 0;
[ .... ]
// C cannot return multiple variables at once. A function can have ONE and ONLY ONE return value.
return(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmount, int FiveCentAmount);
}
void PrintResult(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmount, int FiveCentAmount)
{
[...]
return; // An empty return statement is not needed. When a void-function reaches the end, it automatically returns.
}
int main(void)
{
// Declare your variables before using them!
int change;
int FiftyCentAmount;
int TwentyCentAmount;
int TenCentAmountCentAmount;
int FiveCentAmountCentAmount;
PrintDisplay();
// Do not write the type when calling a function
// GetChange(change);
GetChange(int change);
// Do not write the type when calling a function.
// CalculateChange(FiftyCentAmount, TwentyCentAmount, TenCentAmountCentAmount, FiveCentAmountCentAmount);
CalculateChange(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmountCentAmount, int FiveCentAmountCentAmount);
PrintResult(int FiftyCentAmount, int TwentyCentAmount, int TenCentAmount, int FiveCentAmount);
return(0);
}
调用该函数。&
*
示例强>
*name
答案 3 :(得分:1)
Alvits已在评论中回答。看起来你在第一行有一个无意的分号。
答案 4 :(得分:1)
在第一行,void PrintDisplay(void);
末尾的分号将您的函数定义转换为声明。
函数后面的主体被读作自己声明的一部分
{
printf("Enter an amount to calculate change: \n ");
return;
}
此部分本身无效C,导致错误。
删除;
之后的PrintDisplay
,将其重新转换为函数定义,Declaration terminated incorrectly
错误就会消失。