質問編集履歴
1
コードの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
correct
|
12
12
|
|
13
13
|
が問題です。
|
14
|
-
以前行ったコメントの数を出力するプログラムを参考にしてやってみたのですがコンパイルすらうまくいきません。どうしたらよいですか。教えていただきたいです。コードは以下です。
|
14
|
+
以前行ったコメントの数を出力するプログラムを参考にしてやってみたのですがコンパイルすらうまくいきません。どうしたらよいですか。教えていただきたいです。コードは以下です。2個目のコードが以前行ったコメント出力のものです。長くなってしまいすみません。
|
15
15
|
|
16
16
|
```ここに言語を入力
|
17
17
|
コード#include <stdio.h>
|
@@ -65,4 +65,43 @@
|
|
65
65
|
printf("true");
|
66
66
|
return 0;
|
67
67
|
}
|
68
|
+
|
69
|
+
|
70
|
+
#include <stdio.h>
|
71
|
+
|
72
|
+
typedef enum {
|
73
|
+
OUT, /* コメントの外 */
|
74
|
+
SLASH, /* コメントはじめの'/' */
|
75
|
+
IN, /* コメントの中 */
|
76
|
+
STAR, /* コメントおわりの'*' */
|
77
|
+
} state_t;
|
78
|
+
|
79
|
+
int main(void) {
|
80
|
+
int count = 0;
|
81
|
+
state_t state = OUT;
|
82
|
+
int ch;
|
83
|
+
while ( (ch = getchar()) != EOF ) {
|
84
|
+
switch ( state ) {
|
85
|
+
case OUT:
|
86
|
+
if ( ch == '/' ) state = SLASH;
|
87
|
+
break;
|
88
|
+
case SLASH:
|
89
|
+
if ( ch == '*' ) state = IN;
|
90
|
+
else
|
91
|
+
if ( ch != '/' ) state = OUT;
|
92
|
+
break;
|
93
|
+
case IN:
|
94
|
+
if ( ch == '*' ) state = STAR;
|
95
|
+
break;
|
96
|
+
case STAR:
|
97
|
+
if ( ch == '/' ){state = OUT;
|
98
|
+
count++;
|
99
|
+
}else
|
100
|
+
if ( ch != '*' )state = IN;
|
101
|
+
break;
|
102
|
+
}
|
103
|
+
}
|
104
|
+
printf("%d\n", count); /* 結果の出力 */
|
105
|
+
return 0;
|
106
|
+
}
|
68
107
|
```
|