我试图弄清楚我的代码出了什么问题,我检查了方括号是否还可以,但是我仍然无法弄清楚。这是pset 1现金
#include <stdio.h>
#include <cs50.h>
#include <math.h>
int main(void)
{
{
float dollars;
int cents = 0;
int coin_amount = 0;
do
{
//prompt user for amount of change
dollars = get_float("change: ");
}
while (cents < 0);
cents = round(cents * 100);
while (cents >= 25)
{
cents = cents - 25;
coin_amount++;
}
while (cents >= 10)
{
cents = cents - 10;
coin_amount++;
}
while (cents >= 5)
{
cents = cents - 5;
coin_amount++;
}
while (cents >= 1)
{
cents = cents - 1;
coin_amount++;
}
printf("%d\n",coin_amount);
}
投入:1美元
预期产量:4个硬币
答案 0 :(得分:0)
您的错误是您确实要说cents = round(cents * 100)
时说cents = dollars * 100
由于缺乏一致的缩进,因此很难阅读代码,但是您的第一个do while循环也无法正常工作。它会检查美分的价值,但您实际上不会尝试从美元转换为美分,直到您退出循环。换句话说,do-while循环将只运行一次。您可以在其中添加一个负数并破坏程序的意图。您需要在该循环中转换为美分。如果可行,请赞赏。