(c++)getcharについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
イタトモ
記事: 7
登録日時: 13年前

(c++)getcharについて

#1

投稿記事 by イタトモ » 10年前

久しぶりの投稿となります。
AtCoder Typical Contest001の問題Aの際に解けない問題がありました。
コンテスト終了後ほかの方のコードを拝見しますと、わからない箇所がありました。
コンテスト中に解けた範囲の(sample testは通りました)ものに訂正をして通せましたが
理解しきれていません。

コード:

#include <bits/stdc++.h>
using namespace std;
  int W,H;
  int sx,sy,gx,gy;
  string line;
  char maze[600][600];
  bool reached[600][600]={0};

void search(int x,int y,char maze[][600]){
  if(x<0||W <= x || y<0||H<=y||maze[x][y]=='#') return;

  if(reached[x][y]) return;

  reached[x][y] =1;

  search(x+1,y,maze);
  search(x-1,y,maze);
  search(x,y+1,maze);
  search(x,y-1,maze);
}

int main(){
//Hは縦Wは横
  cin>>H>>W;
//迷路読み込みsはスタートgはゴール
  getchar();//ここと
  for(int i=0;i<H;i++){
    for(int j=0;j<W;j++){
   scanf("%c",&maze[j][i]);
      if(maze[j][i]=='s'){
        sx=j;
        sy=i;
      }else if(maze[j][i]=='g'){
        gx=j;
        gy=i;
		    }
      }  getchar();//ここです。
  }
 
 search(sx, sy,maze);//DFS

  if(reached[gx][gy]==1){
    cout<<"Yes"<<endl;
  }else{
    cout<<"No"<<endl;
  }
}
上記のコードの二つのgetchar();です。
つたないコードですが、よろしくお願いします。
ちなみに、getchar();なしでもsample testはとおりました。(たまたまかもしれませんが)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: (c++)getcharについて

#2

投稿記事 by みけCAT » 10年前

イタトモ さんが書きました:上記のコードの二つのgetchar();です。
入力の改行文字を読み飛ばしています。
イタトモ さんが書きました:ちなみに、getchar();なしでもsample testはとおりました。(たまたまかもしれませんが)
詳しくみないとよくわかりませんが、多分たまたまでしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

イタトモ
記事: 7
登録日時: 13年前

Re: (c++)getcharについて

#3

投稿記事 by イタトモ » 10年前

10 10 ←ここと
s.........
#########.
#.......#.
#..####.#.
##....#.#.
#####.#.#.
g.#.#.#.#.
#.#.#.#.#.
#.#.#.#.#.
#.....#... ←ここですか?

イタトモ
記事: 7
登録日時: 13年前

Re: (c++)getcharについて

#4

投稿記事 by イタトモ » 10年前

10 10 ←ここと
s......... ←
#########.←
#.......#.←
#..####.#.←
##....#.#.←
#####.#.#.←
g.#.#.#.#.←
#.#.#.#.#.←
#.#.#.#.#.←
#.....#...←ここですね、すみません。

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: (c++)getcharについて

#5

投稿記事 by みけCAT » 10年前

イタトモ さんが書きました:10 10 ←ここと
s......... ←
#########.←
#.......#.←
#..####.#.←
##....#.#.←
#####.#.#.←
g.#.#.#.#.←
#.#.#.#.#.←
#.#.#.#.#.←
#.....#...←ここですね、すみません。
はい。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

イタトモ
記事: 7
登録日時: 13年前

Re: (c++)getcharについて

#6

投稿記事 by イタトモ » 10年前

わかりました!みけCATさんありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る