初学者C:无法继续下一个循环

时间:2013-10-29 22:20:18

标签: c

我有一个do-while循环:

float amount;
do
{
    printf("Input dollar amount owed:\n");
    amount = GetFloat();
}
while (amount <= 0); 

接着是while循环和printf:

int coins = 0;
while (amount >= 0.25);
{
    amount = amount - 0.25;
    coins++;
}
printf("Number of coins to use: %d\n", coins);
return 0;

但是当我运行并使用它时,while循环不会运行并且printf不会打印。在我的终端中看起来像这样,其中1是用户输入:

  

欠入的美元金额:1

如何让程序进入while循环和printf?

3 个答案:

答案 0 :(得分:9)

while (amount >= 0.25);
                      ^ roh roh

我认为你的意思是:

while (amount >= 0.25)
{
    amount = amount - 0.25;
    coins++;
}

while(x);while(x) { }

相同

答案 1 :(得分:1)

这看起来像while (amount >= 0.25);中的语法错误应该是while (amount >= 0.25)。只需要删除分号。

答案 2 :(得分:0)

似乎您想要输入每个amount输入的硬币数量,直到输入负数。要执行此操作,您需要嵌套while循环。伪代码将是:

Get amount
Check if it is greater than 0
Get number of coins and print
Repeat

实际的代码可能是这样的:

float amount;
printf("Input dollar amount owed:\n");
amount = GetFloat();
while( amount >= 0 )
{
    int coins = 0;
    while (amount >= 0.25)
    {
        amount -= 0.25;
        coins++;
    }
    printf("Number of coins to use: %d\n", coins);

    printf("Input dollar amount owed:\n");
    amount = GetFloat();
}

return 0;

然而,你的“获取硬币数量”只是进行分割,然后进行地板操作。所以这不需要循环:

int coins = (int) (amount / 0.25f);   // casting to an int will truncate the float.