###課題
プログラミング初心者です。
C言語で下のような白黒画像を表示させるにはどうすればいいか教えてください。
下に実際に作成したプログラムがあるのですが、よくわかりません。
よろしくお願いします!
###出題
画像データ
□□□□□□□■■■■■
□□■■□□□□□□□■
□■■□■■■■■■■■
□□□□□■□■□□□■
□■■■□■■■□■■■
□■□□□■■□□■■■
□□□□□□□□□■□■
□□■■■■■■□■□■
□■■□□□■□■□□■
□■□□□□■□■□□■
□■■■■■■■■□□■
■□□□□□□□□■■■
###試したこと(上の補足に書かれてる画像がinput部分?)
#include <stdio.h>
int fill(int x, int y);
int input[12][12] = {
{0,0,0,0,0,0,0,1,1,1,1,1},
{0,0,1,1,0,0,0,0,0,0,0,1},
{0,1,0,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,1,0,1,0,0,0,1},
{0,1,1,1,0,1,1,1,0,1,1,1},
{0,1,0,0,0,1,1,0,0,1,1,1},
{0,0,0,0,0,0,0,0,0,1,0,1},
{0,0,1,1,1,1,1,1,0,1,0,1},
{0,1,1,0,0,0,1,0,1,0,0,1},
{0,1,0,0,0,0,1,0,1,0,0,1},
{0,0,1,1,1,1,1,1,1,1,0,1},
{1,0,0,0,0,0,0,0,0,1,1,1},
};
int output[12][12] = {
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0},
};
int main(void)
{
int x,n;
scanf("%d", &x); //xをキーボードから入力
n = fill(x, x); //座標x,xから塗りつぶすことにする
printf("%d\n",n);
return 0;
}
int fill(int x, int y)
{
int left,right,up,down;
座標(x,y)がinputの範囲外であればダメ(0を返す)
inputの座標(x,y)を調べる.黒(1)でなければダメ(0を返す)
outputの座標(x,y)を調べる.すでに出力があれば(1ならば)ダメ(0を返す)
そうでないなら
outputの(x,y)を黒(1)に置き換える.
自分の上下左右を調べる.
つまり,left = fill(x-1, y);
right = fill(x+1,y);
up = fill(x,y-1);
down = fill(x,y+1);
返値は,left+right+up+down+1; //+1は自分自身の1画素分
}