0

コードは正常に動作し、実行中です。

printf("\nEnter number of hours ");
scanf("%f", &hours);

{
    if (hours>=5) {
        calc_charge=minimum_fee;
        bill = hours * minimum_fee;
        printf("%i", &bill);
    }
    else
        if(hours>=8) {
            bill=hours*mini_fee;
            printf("%i", &bill);
        }
        else
            if (hours <= 24) {
                bill = hours*maximum_fee;
                printf("%i", &bill);
            }

    while (hours >= 4) {
        bill = hours*minimum_fee;
        printf("%i", &bill);
    }

しかし、出力は

34525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160134525160

コードが計算を行っていないだけです。なぜだめですか?

4

3 に答える 3

12

&すべての printfs を削除します。変数のアドレスではなく値を出力したい。

于 2013-04-02T01:44:45.937 に答える
2

アーミンが提案したようにを削除することに加えて、改行または少なくともスペースを printfs&に追加することも役立つ場合があります。\n

printf("%i\n", bill);

そうしないと、数字が隣り合って印刷されます。

于 2013-07-16T14:22:02.947 に答える
1

コードに無限ループがあります。

while (hours >= 4) {
    bill = hours*minimum_fee;
    printf("%i", &bill);
}

一度だけ印刷したいかもしれません:

    bill = hours*minimum_fee;
    printf("%i", &bill);

それとも、if代わりに書きたかったのwhileですか?(あくまで推測であり、提案ではありません)

于 2013-07-16T15:01:13.717 に答える