gpt4 book ai didi

c - 我的程序输出错误值和未知错误

转载 作者:行者123 更新时间:2023-11-30 14:37:11 25 4
gpt4 key购买 nike

这是我正在尝试为我的初学者编程类(class)解决的问题。我需要输入找零并计算需要退还多少硬币。

这是我的代码:

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);
}

我不明白为什么当我输入 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 ); 

关于c - 我的程序输出错误值和未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57522727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com