#include <stdio.h>
void init(); //初期化
int countHole(); //穴の個数カウント
//画面の配列
int array[10][10];
//メイン
int main(void)
{
int i,j,value;
init();
value=countHole(); /* 穴の数をカウントして変数valueに代入 */
//画面表示
for(i=0;i<=9;i++) {
for(j=0;j<=9;j++) {
if (array[j][i]==1) {
printf("■");
} else {
printf("□");
}
}
printf("\n");
}
printf("\n穴の個数:%d個\n",value);
scanf("終わり");
return 0;
}
//初期化
void init() {
int i,j;
//全て0にする
for (i=0;i<=9;i++) {
for(j=0;j<=9;j++) {
array[i][j]=0;
}
}
//特定のマスだけ1にする
array[0][8]=1;
array[1][8]=1;
array[2][8]=1;
array[2][9]=1;
}
int countHole() {
/* ここで穴の個数をカウント */
return 0;
}
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
■■■□□□□□□□
□□■□□□□□□□
穴の個数:0個
と表示されます。
ここで、左下の隔離されたマス(穴)の数を調べて、変数valueに代入したいのですが、出来ますか?
この場合だと「2個」と表示されるのが期待です。
ただし、調べるときは一番上から調べます。
例えば、
□□□□□□□□□□
■■■■■■■■■■
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
□□□□□□□□□□
だと下の領域を穴と認識し、「80個」と表示されて欲しいです。(左、下、右端には壁があって、上には無いって感じ?かな)
分かりにくくてすいません。ご教授願います。