最大5人まで体重を入力することができ、0を押すと平均体重が出るというプログラムを書いています。
体重を小数点1桁まで入力させたいので、以下のコードのように %.1f と書いているのですが、結果は
#include <stdio.h> int main(void) { float omosa, sum=0.0; int n; for (n=0;n<5;n++) { printf("数字を入力して下さい(0で終了): "); scanf("%.1f", &omosa); if (omosa==0) break; sum = sum + omosa; } printf("%d人の平均体重は%.1fkgです.\n",n ,sum/n); return 0; }
【結果】
数字を入力して下さい(0で終了): 50.2
数字を入力して下さい(0で終了): 数字を入力して下さい(0で終了): 数字を入力して下さい(0で終了): 数字を入力して下さい(0で終 了): 5人の平均体重は0.0kgです.
のようになってしまいます。しかし %d だとうまくいきます。
なぜですか?
ちなみに %d をつかった場合のコードと結果はこちらです。
#include <stdio.h> int main(void) { int n,omosa,sum; int sum = 0; for (n=0;n<5;n++) { printf("数字を入力して下さい(0で終了): "); scanf("%d", &omosa); if (omosa==0) break; sum = sum + omosa; } printf("%d人の平均体重は%dkgです.\n",n ,sum/n); return 0; }
【結果】
数字を入力して下さい(0で終了): 54
数字を入力して下さい(0で終了): 46
数字を入力して下さい(0で終了): 0
2人の平均体重は50kgです.
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 13:31