2次元配列のラベリング C++

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
momigear

2次元配列のラベリング C++

#1

投稿記事 by momigear » 13年前

マークされているものが上下左右(4値)でつながっているものを一つとしてカウントするプログラムを作りたいです。

□□■□■
□■■□□
□■□□■

この場合は3つです。
マークを判決した時に上下左右を判定するという流れだと思うんですがそれをうまく再起を利用してかけません。
shimaという関数のところを教えていただきたいです。

コード:


#include <iostream>
#include <string>
using namespace std;

const int size_x=5;
const int size_y=10;

void print_map(string [][size_x]);
void shima(string [][size_x],??);

int main()
{
  string map[size_y][size_x]={
    {"□","□","□","□","□","■","□","□","■","■"},
    {"□","□","□","□","□","□","■","□","■","■"},
    {"□","□","□","■","■","■","□","■","□","□"},
    {"□","□","■","■","□","■","□","□","□","□"},
    {"□","□","□","■","□","□","■","□","□","□"}};

  print_map(map);

  shima(map,??);


  return 0;
}


void print_map(string map[][size_x])
{
  for(int i=0;i<size_x;i++){
    for(int j=0;j<size_y;j++){
      cout << map[i][j];
    }
    cout << endl;
  }
}

void shima(string map[][size_y],??)
{
  //再帰による島のカウント

}


アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 2次元配列のラベリング C++

#2

投稿記事 by softya(ソフト屋) » 13年前

前回のトピックが残っていますので新しい投稿はなさらないで下さい。
「2次元配列のラベリング(島化) • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=12056

あと名前を変えることもフォーラムルールで禁止させて頂いています。
こちらは前のトピックがあるため不要ですので閉鎖させて頂きます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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