- ベストアンサー
ヘビ問題のプログラムの不備について教えてください
- 解決できない質問です。学校のジャッジシステムに提出しても間違いと表示されます。問題07のヘビを解くためのプログラムがありますが、うまく動作しません。プログラムに不備がある可能性があります。サンプルは処理できたので、何が問題なのか教えてください。
- 問題07のヘビを解くためのプログラムが提供されていますが、学校のジャッジシステムに提出しても間違いと表示されてしまいます。プログラマーの方々に、以下のプログラムの不備を教えていただきたいです。
- 問題07のヘビを解くためのプログラムがありますが、うまく動作しません。学校のジャッジシステムに提出しても間違いと表示される問題があります。プログラムの不備を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
これでいけると思います。 コメント入れときました。 まんがいちダメならごめんなさい。 #include<stdio.h> int A(char snake[]) { int answer=0,a=0,b=0,j; // 0で初期化 if(snake[0] == '>' && snake[1] == '\''){ for(j = 2; snake[j] == '='; j++){ a++; } if(snake[j] == '#'){ for(j += 1; snake[j] == '='; j++){ b++; } } if(snake[j] == '~' && a == b){ answer = 1; } } return answer; } int B(char snake[]) { int answer=0,j; // 0で初期化 if(snake[0] == '>' && snake[1] == '^'){ for(j = 2; snake[j] == 'Q' && snake[j+1] == '='; j += 2){ } if(snake[j] == '~' && snake[j+1] == '~'){ answer = 1; // 修正 } } return answer; } int main(void) { int i,n; // 修正 char snake[110]; scanf("%d",&n); for(i = 0; i < n; i++) { scanf("%s",snake); if( A(snake) == 1 ){ puts("A"); }else if( B(snake) == 1 ){ puts("B"); }else{ puts("NA"); } } return 0; }
その他の回答 (2)
- xceu
- ベストアンサー率25% (2/8)
おかしいですねぇ わたしのコンパイラではバッチリ通るんですけど・・ ちなみにVC++です。 一文字づつチェックしましたけど、入力ミスも特にないし・・ わかりませんねぇ (^^;
お礼
ミスみつけました!!! >'=#=~>^Q=Q=^^ このようにAとBの蛇をつなげると最初のAの蛇になりますうう! まだ通してないですが間違いなくこれです。 ありがとうございました!!
補足
そうですねえ。 間違いの種類としては、 表示される値が違うみたいなのですが、何もみつからないですねえ。 配列も5万くらい余分に用意してやってみたりとかしてもダメみたいっす。 夜中にいろいろとありがとうございました。 もう少し挌闘してみます。
- xceu
- ベストアンサー率25% (2/8)
関数A.B内のanswerを0で初期化してみては?
補足
試してみましたが、ダメでした。 追加してmainのt,jの変数が不要だったので削除してみましたが受け付けませんでした。
補足
ご丁寧にありがとうございます! Bのreturnは見落としてました。 が、通りませんでした。。。 みつかりませんねえええええ。。。