私は、設定された変更量を考慮して、変更されたコインの最大量を計算するプログラムを作成しています。私は、正の浮動小数点として要求された変更を受け取り、それを100倍して整数に変換します。その結果、金額は1ペニーになります。テストでは、いくつかの値は動作しますが、4.2などの他の値は動作しません.18になる必要があるときに応答22を与えます。なぜ動作しないのですか。いくつか助けてくださいできますか?whileループ内の文がC言語で期待される出力を出さない場合
int main (void)
{
float change;
do
{
printf("How much change do you want?\n");
change = get_float();
} while (change < 0);
int change1 = change * 100;
int coins = 0;
while (change1 != 0)
{
if (change1 >= 25)
{
change1 -= 25;
coins++;
}
else if (change1 >= 10)
{
change1 -= 10;
coins++;
}
else if (change1 >= 5)
{
change1 -= 5;
coins++;
}
else if (change1 >= 1)
{
change1 -= 1;
coins++;
}
}
//Print change
printf("%i\n", coins);
}
は、デバッガでコードをステップましたか? – pm100
問題を見つけるには、デバッグする必要があります。実行中にプログラムを1行ずつ移動し、データがどこに間違っているかを確認します。 – Carcigenicate
20世紀の「フロート」や21世紀の新しい「変わった」問題を「変化」の問題に使用しないでください。整数セント、ペニー、最小金種で働く。よくある質問。 –