入力の中で、C言語での注釈として扱われる部分の個数を出力するプログラムを作れ。
C言語では、入力を前から見て行って、/* が現れそれ以後に / が現れているとき、その最初の / に始まりそれ以後で最初に現れた */ で終わる部分を注釈とよび、入力から取り除く。この操作は、残りの入力がある限り繰り返して行われる。
入力は、1行かもしれず複数行かもしれない。 (キーボードから入力するときは、最後に C-d を入力する。)
出力は、個数を1行に書き出す。
が問題です。
コードは何となくで書いてみました。
開幕見当がつかずめちゃくちゃだと思いますが丁寧に教えていただけると助かります。
コンパイルは通りましたが出力を
This is /* a comment,
which /* continues to
here */ /// * *./**/
/***a/ /*a * */
にすると、何も出ずに終わります。何が原因でしょうか。
#include <stdio.h> #define N 1000 int main(void){ int a[N]; int i; int b=0; int c=0; scanf("%s", a[i]); for(i=0;i<N;i++){ if(a[i]=='/' && a[i+1]=='*'){ b++; }else{ if(a[i]=='*' && a[i+1]=='/'){ c++; } } } if(b<c){ printf("%d", b); }else{ printf("%d", c); } return 0; }
回答3件
あなたの回答
tips
プレビュー