回答編集履歴
2
コードのバグ修正
answer
CHANGED
@@ -31,9 +31,14 @@
|
|
31
31
|
{
|
32
32
|
int b, c = 0, count = 0;
|
33
33
|
while (b = c, (c = getchar()) != EOF)
|
34
|
-
if (b == '/' && c == '*')
|
34
|
+
if (b == '/' && c == '*') {
|
35
|
+
c = 0;
|
35
36
|
while (b = c, (c = getchar()) != EOF)
|
36
|
-
if (b == '*' && c == '/') { count++; break; }
|
37
|
+
if (b == '*' && c == '/') { count++; c = 0; break; }
|
38
|
+
}
|
37
39
|
printf("%d\n", count);
|
38
40
|
}
|
39
|
-
```
|
41
|
+
```
|
42
|
+
**追記**
|
43
|
+
/*/ をコメントの開始と終了と解釈し、
|
44
|
+
*/* をコメントの終了と開始と解釈するバグがあったので、修正しました。
|
1
別解の追加
answer
CHANGED
@@ -19,4 +19,21 @@
|
|
19
19
|
if ((c = getchar()) == '*') count += comment();
|
20
20
|
printf("%d\n", count);
|
21
21
|
}
|
22
|
+
```
|
23
|
+
|
24
|
+
**別解**
|
25
|
+
コメントの開始と終了が 2文字なので面倒なんですね。
|
26
|
+
だったら、2文字同時に比較すればよいでしょう。
|
27
|
+
```C
|
28
|
+
#include <stdio.h>
|
29
|
+
|
30
|
+
int main(void)
|
31
|
+
{
|
32
|
+
int b, c = 0, count = 0;
|
33
|
+
while (b = c, (c = getchar()) != EOF)
|
34
|
+
if (b == '/' && c == '*')
|
35
|
+
while (b = c, (c = getchar()) != EOF)
|
36
|
+
if (b == '*' && c == '/') { count++; break; }
|
37
|
+
printf("%d\n", count);
|
38
|
+
}
|
22
39
|
```
|