我的代码不打印名为 coins 的变量
My code does not print the variable called coins
为什么我的代码没有打印名为 coins
的 int
?
运行 调试系统时我没有看到任何错误。
#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: %i\n", change);
if (change > 0)
{
printf("Change: %i\n", 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: %i\n",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;
),要么首先允许用户输入浮点值,或者……
为什么我的代码没有打印名为 coins
的 int
?
运行 调试系统时我没有看到任何错误。
#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: %i\n", change);
if (change > 0)
{
printf("Change: %i\n", 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: %i\n",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;
),要么首先允许用户输入浮点值,或者……