C/C++の宿題を片付けます 80代目

このエントリーをはてなブックマークに追加
861デフォルトの名無しさん
[1]基礎情報処理
[2]縦100 横100 のマス目(点)に分けられた紙の各点が、白と黒に塗り分けられたものを考え
る。この中に、下にあるように黒い点で囲まれた図形が1 つだけある。図形は必ず、黒い
点で囲まれており、内部は白い点で埋め尽くされている。この「囲まれている」とは、各
黒い点の上下左右および斜めの8 つの点のどれかが黒い点となっているものと考えよう。

なお下の例では紙は小さいが、実際には縦横とも100 のマス目がある。

(一応ペイントで例の図を描いてみました…
http://up2.viploader.net/pic/src/viploader392409.jpg

この図形は整数値の2 次元配列(例えばC 言語ならa[y,x] ただし)で表されている。x 軸は左
から右、y 軸は上から下とするので、a[1,1]は一番左上の点になる。この配列はプログラム
に入る前に何らかの方法で、白い点は0、黒い点は1 になっているものとする。

さて図形の面積、つまり黒い点で囲まれた内部の「白い点」の数を数えるプログラムを
考えよう。ただし図形は必ず紙の上に1 つだけ存在し、またかならず紙の端から点1 つ以
上ずつ少し離れた位置にあるとする(つまり黒い点は紙の上下左右の端には存在しない)。

レポートとしては、プログラムのうち面積を計算する部分を記述して提出すること。ど
のようなプログラミング言語でもかまわないが、プログラムに各自コメントを加え、どの
ようなアルゴリズムに基づいてプログラムが動作しているのか説明すること。
[3]環境
 [3.1]OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4]期限:今日中
[5]特にないと思います

問題文長いですが、黒い点で囲まれた内部の「白い点」の数を数えるプログラムが
書ければできると思うんです
お願いします