C 我的程序输出错误值和未知错误
这是我正在为我的begginer编程课努力解决的问题。我需要输入零钱并计算我需要返还多少硬币 这是我的代码:C 我的程序输出错误值和未知错误,c,C,这是我正在为我的begginer编程课努力解决的问题。我需要输入零钱并计算我需要返还多少硬币 这是我的代码: int main(void) { //prompts user for amount of change and check the value of the imput int n = get_float("enter change owned: "); //converts to p. int change = n * 100; if ( change > 0)
int main(void)
{
//prompts user for amount of change and check the value of the imput
int n = get_float("enter change owned: ");
//converts to p.
int change = n * 100;
if ( change > 0)
{
printf("total change is: %ip\n" , change );
}
else
{
printf(" ERROR: change given needs to be positive value!\n");
}
while(n < 0);
int i = 0;
//calculate quarters
while (change >= 250)
{
n = change - 250;
i++;
}
//calculate dimes
while (change >= 100)
{
n = change - 100;
i++;
}
//calculate nickels
while (change >= 50)
{
n = change - 50;
i++;
}
//calculate pennies
while (change >= 1)
{
n = change - 1;
i++;
}
printf("%d\n", i);
}
int main(无效)
{
//提示用户更改量并检查输入值
int n=get_float(“输入change owned:”);
//转换为p。
整数变化=n*100;
如果(更改>0)
{
printf(“总更改为:%ip\n”,更改);
}
其他的
{
printf(“错误:给定的更改需要为正值!\n”);
}
n<0;
int i=0;
//计算季度
而(更改>=250)
{
n=变化-250;
i++;
}
//计算一角硬币
而(更改>=100)
{
n=变化-100;
i++;
}
//计算镍币
而(更改>=50)
{
n=变化-50;
i++;
}
//计算便士
而(更改>=1)
{
n=变化-1;
i++;
}
printf(“%d\n”,i);
}
我不明白为什么当我输入n=2.50,程序需要计算n=n*100的变化时,它会输出200:S的结果。我的程序也会编译,但当我运行它时,我会得到以下消息:运行时错误:有符号整数溢出:2147483647+1不能用“int”类型表示
谢谢大家!
int n = get_float("enter change owned: ");
它将float转换为整数,因此2.4变为2。
改为:
float n = get_float("enter change owned: ");
此外,您可能需要检查此行:
printf("total change is: %ip\n" , change );
要打印整数,我建议:
printf("total change is: %d\n" , change );
它将float转换为整数,因此2.4变为2。
改为:
float n = get_float("enter change owned: ");
此外,您可能需要检查此行:
printf("total change is: %ip\n" , change );
要打印整数,我建议:
printf("total change is: %d\n" , change );
您不更新变更变量,因此您的循环是无限的。您不更新变更变量,因此您的循环是无限的。