我正在试着写一个程序来计算变化,但它似乎不起作用。我认为问题出在欠1/付1;当我尝试打印这些值时,我什么也得不到(0)。有什么帮助吗?
#include <stdio.h>
int main()
{
double owed, paid;
int dollars, quarters, dimes, nickels, cents, remainder, owed1, paid1;
printf("how much did the customer have to pay ?\n");
scanf("%f",&owed);
printf("how much did the customer pay ?\n");
scanf("%f",&paid);
owed1 = owed * 100;
paid1 = paid * 100;
int change = paid1 - owed1;
dollars = change / 100;
remainder = change % 100;
quarters = remainder / 25;
remainder = remainder % 25;
dimes = remainder / 10;
remainder = remainder % 10;
nickels = remainder / 5;
remainder = remainder % 5;
cents = remainder;
printf("%d",dollars);
printf("Dollars:%d, Quarters:%d, Dimes:%d, Nickels:%d, Cents:%d", dollars , quarters , dimes , nickels , cents );
return 0;
}
发布于 2016-11-06 08:27:07
您在scanf中使用了%f
,这是一个浮点数的格式说明符,但是您的变量是双精度的。您应该改用%lf
:
scanf("%lf",&owed);
paid
也是如此。你应该从你的编译器那里得到关于这个的警告。
https://stackoverflow.com/questions/40444747
复制相似问题