C语言 我的代码不打印名为硬币的变量



为什么我的代码没有打印名为coinsint? 运行调试系统时没有看到任何错误。

#include <cs50.h>
#include <stdio.h>
int main(void)
{  // getting the user validation  
printf("please enter a amount of change n");
int change = get_int();
int coins = 0;
if (change > 0 && change <= 0  && change != 0)
printf("Change: %in", change);
if (change > 0)
{
printf("Change: %in", change);
}
if (change < 0 )
{
printf("please enter a positve number n");
}
if (change == 0)
{
printf("Coins: 0 n");
}
//were it counts the amount of coins

float changef = (int)change;
float qaurter = 0.25;
float dime = 0.10;
float nickel = 0.05;
float penny = 0.01;

while (changef / qaurter)
{
coins++;
return changef - qaurter;
}
while (changef / dime)
{
coins++;
return changef - dime;
}
while (changef / nickel)
{
coins++;
return changef - nickel;
}
while (changef / penny)
{
coins++;
return changef - penny;
}
printf("Coins: %in",coins);
}

你的循环是用return语句编写的:

while (changef / qaurter)
{
coins++;
return changef - qaurter;
}

main()返回等效于退出程序。 您需要修改代码以避免在循环中使用return。 例如(包括拼写修正(:

while (changef / quarter)
{
coins++;
changef -= quarter;
}

虽然坦率地说,你可以完全避免循环:

int extra = changef / quarter;
coins += extra;
changef -= extra * quarter;

然而,在可行之前还有更多的手术要做,因为你只对整数美元进行更改,但你的quarter和朋友被定义为具有分数值的float变量。 您要么只需要以美分(int quarter = 25;(为单位工作,要么首先允许用户输入浮点值,或者......

最新更新