あなたは を持っているdouble days;
ので、 が必要scanf("%lf", &days)
です。float days;
または、現在の形式で使用できます。
では、 ;printf()
は必要ありません。l
とscanf()
、それは重要です。
出力を改行で終了することを忘れないでください。あなたの最後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