0

定数変数を使用して、指定された日数にわたって失われた体重の量を計算する簡単なプログラムを作成しようとしています。私にはすべてが正しいように見えますが、答えとして 0 が出力されていますか? どんな助けでも大歓迎です!

#include <stdio.h>
#include <stdlib.h>

int main(){

double days; //declaring variables that will be enetred by user
const float weightLoss = 0.04; //declaring constant to be used in calculation
float overallLoss; //float that is used to display overall result

printf("Please enter how many days you are going to fast for: \n"); 
scanf("%f", &days); //scans keyboard for input and assigns to designated variable
printf("You entered: %f\n", days); 

overallLoss = days * weightLoss; 

printf("You will lose %.2f stone", overallLoss); //print of the final result

}
4

1 に答える 1

4

あなたは を持っているdouble days;ので、 が必要scanf("%lf", &days)です。float days;または、現在の形式で使用できます。

では、 ;printf()は必要ありません。lscanf()、それは重要です。

出力を改行で終了することを忘れないでください。あなたの最後printf()には1つ欠けています。また、一部のコンパイラ (GCC や clang など) は、フォーマット文字列と指定された型の間の不一致について警告を表示します。gcc -Wallそれらを診断するには、適切なオプション ( など) を使用していることを確認してください。

作業コード

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    double days;
    const float weightLoss = 0.04; // Dimension: stone per day
    float overallLoss;

    printf("Please enter how many days you are going to fast for: ");
    if (scanf("%lf", &days) != 1)
    {
        fprintf(stderr, "Oops!\n");
        exit(1);
    }
    printf("You entered: %13.6f\n", days);

    overallLoss = days * weightLoss;

    printf("You will lose %.2f stone\n", overallLoss);

    return 0;
}

サンプル出力

ファーストラン:

Please enter how many days you are going to fast for: 12
You entered:     12.000000
You will lose 0.48 stone

2 回目の実行:

Please enter how many days you are going to fast for: a fortnight
Oops!

if入力を正確に入力する限り、それらについてまだ学習していない場合は、テストを控えることができます。認識可能な数値でなければなりません。

代替コード

float daysの代わりに使用しdouble daysます。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    float days;
    const float weightLoss = 0.04; // Dimension: stone per day
    float overallLoss;

    printf("Please enter how many days you are going to fast for: ");
    if (scanf("%f", &days) != 1)
    {
        fprintf(stderr, "Oops!\n");
        exit(1);
    }
    printf("You entered: %13.6f\n", days);

    overallLoss = days * weightLoss;

    printf("You will lose %.2f stone\n", overallLoss);

    return 0;
}

サンプル出力

Please enter how many days you are going to fast for: 10
You entered:     10.000000
You will lose 0.40 stone
于 2013-10-28T14:07:25.287 に答える