我开始第一天学习C并且想要创建一个程序,询问用户欠下多少变化,然后说出可以进行更改的最小硬币数量。假设唯一的硬币是四分之一(0.25),硬币(0.10),镍(0.05)和便士(0.01)。因此,如果所欠的变化是1.15那么这个程序应该说4个季度,1个角钱和1个镍。无论如何。
问题是当变化值为0.25或更大时,我试图从浮动变化中减去0.25。
int main(void)
{
float change;
printf("Kui palju on vaja peenraha tagasi maksta?\n");
change = GetFloat();
float quarters;
for (change; change >= 0.25; change - 0.25, quarters++) // This is where i tried to subtract. Look only on this line because everything else is incomplete.
{
printf("change= %f and quarters= %f", change, quarters);
}
}
这是如此奇怪,因为改变 - 工作但改变 - 0.25没有。我做错什么了吗?有替代方案有效吗?
答案 0 :(得分:3)
变化:
for (change; change >= 0.25; change - 0.25, quarters++)
为:
for (change; change >= 0.25; change = change - 0.25, quarters++)
答案 1 :(得分:1)
你需要初始化宿舍(为什么宿舍是浮动的?你有1.7个宿舍吗?)。也许这更具可读性:
int quarters = 0;
while ( change >= .25 ) {
quarters++;
change -= .25;
}