[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
int型の2次元配列がある。このうち1つの変数に注目したとき、その変数の値と同じ値を持つ変数が
上下左右に何個繋がっているかを返すプログラムを作成せよ。
例えば以下のような配列 int array[8][8];があるとき、
左下の1 (array[7][0])を指定した場合、「1」は5個繋がっていることになる。
その右隣の3 (array[7][1])を指定した場合、「3」は3個繋がっていることになる。

0 2 1 3 0 1 1 2
2 2 2 1 1 2 3 3
3 0 2 1 2 3 2 2
1 1 1 2 1 0 0 1
2 3 3 2 1 0 1 0
2 1 1 2 2 3 0 1
1 1 2 1 2 0 3 1
1 3 3 3 0 0 1 1

[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: ([2011年11月05日まで])
[5] その他の制限:無し

よろしくお願いします。
whileや再起を使って考えてみましたが分かりませんでした。