cs50 pset 1 cash 只打印出零
cs50 pset 1 cash only prints out zeros
我试着弄清楚我的代码有什么问题,我检查了括号是否正常,但我还是想不通 out.this 是 pset 1 cash
#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 美元
预期 Output:4 个硬币
你的错误是当你真正想说 cents = dollars * 100
时却说了 cents = round(cents * 100)
由于缺乏一致的缩进,很难阅读代码,而且您的第一个 do while 循环也无法正常工作。它检查美分的价值,但在您退出循环之前,您实际上不会尝试将美元转换为美分。换句话说,do-while 循环只会 运行 恰好一次。您可以将负数放入其中并破坏程序的意图。您需要在该循环中转换为美分。如果可行,请点赞。
我试着弄清楚我的代码有什么问题,我检查了括号是否正常,但我还是想不通 out.this 是 pset 1 cash
#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 美元
预期 Output:4 个硬币
你的错误是当你真正想说 cents = dollars * 100
cents = round(cents * 100)
由于缺乏一致的缩进,很难阅读代码,而且您的第一个 do while 循环也无法正常工作。它检查美分的价值,但在您退出循环之前,您实际上不会尝试将美元转换为美分。换句话说,do-while 循环只会 运行 恰好一次。您可以将负数放入其中并破坏程序的意图。您需要在该循环中转换为美分。如果可行,请点赞。