回答編集履歴
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 | 
             
            ```
         | 
