回答編集履歴

2

追記

2017/08/04 12:20

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -2,4 +2,58 @@
2
2
 
3
3
 
4
4
 
5
+ ---
6
+
7
+ 以下のコードで動作確認しました。
8
+
9
+ ```C
10
+
11
+ #include <stdio.h>
12
+
13
+
14
+
15
+ int main(void) {
16
+
17
+ int i,ch;
18
+
19
+ int cnt[10] ={0};
20
+
21
+ printf("標準入力 = ");
22
+
23
+ while((ch = getchar()) !=EOF) {
24
+
25
+ printf("%c, ", ch); // printデバッグ
26
+
5
- `'0' <= ch && ch <= '9'`って書き方が一番見やすいと思いますが。
27
+ if('0' <= ch && ch <= '9') {
28
+
29
+ cnt[ch - '0']++;
30
+
31
+ }
32
+
33
+ }
34
+
35
+ for(i = 0; i < 10; i++) {
36
+
37
+ printf("'%d' => %d\n", i, cnt[i]);
38
+
39
+ }
40
+
41
+
42
+
43
+ return 0;
44
+
45
+ }
46
+
47
+ ```
48
+
49
+
50
+
51
+ - **printデバッグしよう。**
52
+
53
+ そもそも入力できているのか?から疑う
54
+
55
+ - **とりあえずカッコは付ける**
56
+
57
+ よっぽど可読性悪ければ、動作を確認した後外せばいいんです。
58
+
59
+

1

追記

2017/08/04 12:20

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -1 +1,5 @@
1
1
  `if (ch <='0' && '9'>= ch)`じゃなくて、`if (ch >='0' && '9'>= ch)`では。
2
+
3
+
4
+
5
+ `'0' <= ch && ch <= '9'`って書き方が一番見やすいと思いますが。