回答編集履歴
2
コードのバグ修正
test
CHANGED
@@ -64,14 +64,24 @@
|
|
64
64
|
|
65
65
|
while (b = c, (c = getchar()) != EOF)
|
66
66
|
|
67
|
-
if (b == '/' && c == '*')
|
67
|
+
if (b == '/' && c == '*') {
|
68
|
+
|
69
|
+
c = 0;
|
68
70
|
|
69
71
|
while (b = c, (c = getchar()) != EOF)
|
70
72
|
|
71
|
-
if (b == '*' && c == '/') { count++; break; }
|
73
|
+
if (b == '*' && c == '/') { count++; c = 0; break; }
|
74
|
+
|
75
|
+
}
|
72
76
|
|
73
77
|
printf("%d\n", count);
|
74
78
|
|
75
79
|
}
|
76
80
|
|
77
81
|
```
|
82
|
+
|
83
|
+
**追記**
|
84
|
+
|
85
|
+
/*/ をコメントの開始と終了と解釈し、
|
86
|
+
|
87
|
+
*/* をコメントの終了と開始と解釈するバグがあったので、修正しました。
|
1
別解の追加
test
CHANGED
@@ -41,3 +41,37 @@
|
|
41
41
|
}
|
42
42
|
|
43
43
|
```
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
**別解**
|
48
|
+
|
49
|
+
コメントの開始と終了が 2文字なので面倒なんですね。
|
50
|
+
|
51
|
+
だったら、2文字同時に比較すればよいでしょう。
|
52
|
+
|
53
|
+
```C
|
54
|
+
|
55
|
+
#include <stdio.h>
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
int main(void)
|
60
|
+
|
61
|
+
{
|
62
|
+
|
63
|
+
int b, c = 0, count = 0;
|
64
|
+
|
65
|
+
while (b = c, (c = getchar()) != EOF)
|
66
|
+
|
67
|
+
if (b == '/' && c == '*')
|
68
|
+
|
69
|
+
while (b = c, (c = getchar()) != EOF)
|
70
|
+
|
71
|
+
if (b == '*' && c == '/') { count++; break; }
|
72
|
+
|
73
|
+
printf("%d\n", count);
|
74
|
+
|
75
|
+
}
|
76
|
+
|
77
|
+
```
|