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

質問編集履歴

1

コードの追加

2020/06/22 01:06

投稿

YuhiKUROIWA
YuhiKUROIWA

スコア9

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
  ```