回答編集履歴

1

追記

2021/10/08 06:48

投稿

fana
fana

スコア11996

test CHANGED
@@ -9,3 +9,67 @@
9
9
 
10
10
 
11
11
  …という話になっていると思われます.
12
+
13
+
14
+
15
+ ---
16
+
17
+
18
+
19
+ あと,aの更新処理もまずそう.
20
+
21
+ '0' が入力されるよりも前に10倍してしまうのは間違いかと.
22
+
23
+
24
+
25
+ このくらいでどうかな…?
26
+
27
+
28
+
29
+ ```C
30
+
31
+ int main(void)
32
+
33
+ {
34
+
35
+ int a = 0;
36
+
37
+ char b;
38
+
39
+
40
+
41
+ while (1)
42
+
43
+ {
44
+
45
+ scanf("%c", &b);
46
+
47
+
48
+
49
+ if( b=='\n' )continue; //改行は無視する
50
+
51
+ if( b=='0' )break; //'0'なら終了
52
+
53
+ if( b<'1' || '9'<b ) //※数字でないものが入力された場合への備え
54
+
55
+ {
56
+
57
+ printf( "Invalid Input\n" );
58
+
59
+ return 0;
60
+
61
+ }
62
+
63
+
64
+
65
+ a = a * 10 + ( b-'0' );
66
+
67
+ }
68
+
69
+ printf("%d\n", a);
70
+
71
+ return 0;
72
+
73
+ }
74
+
75
+ ```