文字列(浮動小数型数字)を入力してそれを数値に変換して出力するプログラムの実行結果がおかしいです
入力1:1.1736 (文字)
出力1:1.1736 (数値)
入力2:1.44 (文字)
出力2:1.44 (数値)
となるようにしたいです.しかし,
出力1:1.173600
出力2:1.440000
と,数字の数が全部で7つになるように0が出力されてしまいます.
コードを次に示します.
c
1#include <stdio.h> 2 3int main(void) { 4 double v = 0; 5 double w = 0; 6 int c; 7 int flag = 0; 8 double f = 0.1; 9 10 printf("input number = "); 11 12 while ((c = getchar()) != EOF) { 13 if (c >= '0' && c <= '9') { 14 if (flag == 1) { 15 w = w + f * (c - '0'); 16 f *= 0.1; 17 } 18 else { 19 v = v * 10 + (c - '0'); 20 } 21 } 22 else { 23 flag = 1; 24 } 25 } 26 27 double m = v + w; 28 printf("m=%f\n", m); 29 30 return 0; 31}
回答1件
あなたの回答
tips
プレビュー