teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

 

2022/08/16 14:59

投稿

退会済みユーザー
answer CHANGED
@@ -17,5 +17,5 @@
17
17
  ここもおかしいです。
18
18
  ここは、input から取り出した1文字が、配列 g_ch の中に含まれているか調べ、含まれていない場合は、g_chに追加する部分だと思われます。
19
19
  この場合、g_chに文字を追加するのは、最後まで一致する文字がなかった場合に限ります。
20
- しかし、上のコードでは、チェックの途中で文字が一致しなくなると、すぐに新しい文字を格納しようとしています。
20
+ しかし、上のコードでは、チェックの途中であっても、文字が一致しなくなったらすぐに新しい文字をg_chに格納しようとしています。
21
21
  さらに、新しい文字を格納する処理のところが逆になっています(inputの配列に、g_chの文字を格納している)。

2

 

2022/08/16 14:58

投稿

退会済みユーザー
answer CHANGED
@@ -16,6 +16,6 @@
16
16
  ```
17
17
  ここもおかしいです。
18
18
  ここは、input から取り出した1文字が、配列 g_ch の中に含まれているか調べ、含まれていない場合は、g_chに追加する部分だと思われます。
19
- この場合、いったん g_ch の最初から最後まで一致する文字があるかどうかをチェックしいといけせん
19
+ この場合、g_chに文字を追加するは、最後まで一致する文字がなかった場合に限り
20
20
  しかし、上のコードでは、チェックの途中で文字が一致しなくなると、すぐに新しい文字を格納しようとしています。
21
21
  さらに、新しい文字を格納する処理のところが逆になっています(inputの配列に、g_chの文字を格納している)。

1

 

2022/08/16 14:48

投稿

退会済みユーザー
answer CHANGED
@@ -2,6 +2,7 @@
2
2
  for (int i = 0; i != MAX; g_chcount[i]) g_chcount[i] = 0;
3
3
  ```
4
4
  まずここで無限ループになっているような気がします。
5
+ どれだけループしても i はゼロのままであり、 MAX(101)と等しくなることはありません。
5
6
 
6
7
  ```c
7
8
  for (countb = 0; g_ch[countb] != '\0'; countb++) {