我有一个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?
答案 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.