2017-07-02 2 views
-2

という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); 

} 
+0

'if(変更> 0 &&変更<= 0 &&変更!= 0)で、セント()のみで作業するか、浮動小数点値を入力できるようにするか、最初の2つの条件はどちらも真ではない。 –

+0

コードをフォーマットし、フォーマットして投稿する方法を学んでください。フォーマットされていないコードを読むのは面倒です。モジュール演算子である '%'を使用してください。さらに、「印刷していない」という意味はどうですか?通貨を扱うときには、 'float'と' doubles'を使用しないでください。それは長期的に間違った結果につながります – Pablo

+1

[浮動小数点数学は壊れていますか?](https://stackoverflow.com/questions/588004/is-floating-point-math-broken)*多くの*「変更」の質問がここにあります。浮動小数点型を使用することはめったに問題ありません。 –

答えて

3

あなたのループは、その中のreturn文で書かれている:main()からの復帰

while (changef/qaurter) 
{ 
    coins++; 
    return changef - qaurter; 
} 

は、プログラムを終了することと同じです。ループ内でreturnを使用しないようにするには、コードを修正する必要があります。 (スペルの修正を含む)たとえば:

while (changef/quarter) 
{ 
    coins++; 
    changef -= quarter; 
} 

率直に言ってますが、あなたは完全にループを避けることができます:

int extra = changef/quarter; 
coins += extra; 
changef -= extra * quarter; 

しかし、あなたが唯一の整数番号の変更を行うので、それが実現可能になる前に行うには多くの手術がありますあなたのドルはquarterで、友人はfloatという小数点以下の変数で定義されています。

+1

われわれが知っているように、この単純なアプリケーションに浮動小数点値を読み取り、浮動小数点演算を使用することは、浮動小数点精度の問題のために、より多くの問題を必要としています。しかし、それはいくつかの基本的な概念と落とし穴を教える非常にツールです。 – chqrlie

関連する問題