2017-02-15 13 views
0

私はこの愚かな質問をするのはちょっと恥ずかしいですが、実際にはすべてを試しましたが、どこにエラーがあるのか​​まだ分かりません。CS50 pset1欲張りのチャレンジ

私はプログラミングに関して101%noobです。私はCS50に登録しました。私はそれを最大限に活用しようと努力しています。そのため、私は最も快適で挑戦的なものを常に取り入れ、最も学びたいと思っています。

私はCS50のpset1でGreedy Challengeのコードを完成させました。私は、私の謙虚な知識が私を許す限り、それを良いもの、清潔かつ単純なものにするために私の心を荒らしましたが、コードをチェックするたびに1つのエラーが表示され続けます。

これによって、私は両方、コードチェックと私のwirttenコードを添付:CS50ターミナルスクリプトによって

チェックコード:

#include <stdio.h> 
#include <cs50.h> 
#include <math.h> 

float change; 

int coins = 0; 
int quantity; 

int main (void) 
{ 
do 
{ 
    printf("O hai! How much change is owed?\n"); 
    change = get_float(); 
} 
while (change < 0); 



//converting float change (dollars) into integer change (cents) 

quantity = round(change * 100.00); 



while (quantity > 25) //This runs as long as quantity left is bigger than a quarter coin 
{ 
    quantity -= 25; 
    coins++; 
} 
while (quantity >= 10) //This runs as long as quantity left is bigger than a dime coin 
{ 
    quantity -= 10; 
    coins++; 
} 
while (quantity >= 5) //This runs as long as quantity left is bigger than a nickel coin 
{ 
    quantity -= 5; 
    coins++; 
    } 
while (quantity >= 1) //This runs as long as quantity left is bigger than 0 
{ 
    quantity -= 1; 
    coins++; 
} 


printf("%i\n", coins); 
}` 

免責事項:

:) greedy.c exists :) greedy.c compiles :) input of 0.41 yields output of 4 :) input of 0.01 yields output of 1 :) input of 0.15 yields output of 2 :) input of 1.6 yields output of 7 :(input of 23 yields output of 92 \ expected output, but not "94\n" :) input of 4.2 yields output of 18 :) rejects a negative input like -.1 :) rejects a non-numeric input of "foo" :) rejects a non-numeric input of ""

ここに私のコードです:私は、ハーバードの誠実な行動規範を完全に認識していることを指摘したいと思います。私は問題のための簡単な解決策を得ようとしていないだけで、この挑戦​​を取り除く。

誰かが自分の時間を取って私を啓発する説明を書いて、whys私のコードの失敗を理解するのを助けてくれることを願っています。 私はどんな答えも求めておらず、そう思わない場合は指摘する必要はありません。 私はあなたのすべての答えを読んで、最終的には動作するはずのものが全く動作していない理由を理解しているCSの未熟な初心者です。

大変ありがとうございます。

+0

'数量> 25'とそのチェックを置き換えるために(あなたは今ではそれを推測している必要があります)です - >'数量> = 25' – BLUEPIXY

+0

あなたが0.25のためにどのような出力を得るのですか? –

+0

1!今すぐ解決!どうもありがとうございました! – Togeri

答えて

1

最初の比較では、問題は(quantity > 25)です。 $ 23の総額をお持ちの場合、23 * 4 = 92 coinsが必要です。 2つのダイムにあなたを通じ押して、(quantityはもはや25より厳密に大きなですが、それに等しいので)あなたが(quantity == 25)で終わるものを四半期の91を減算しているし、チェックが失敗したが

、および最後のニッケルに入れ、94個のコインを表示させます。

修正が(quantity >= 25)

+1

ああ、私は参照してください!!!! @YePhIcKありがとう! 問題の原因を理解しています。非常に優しく説明!ほんとうにありがとう! – Togeri

関連する問題