d626

輸入說明 :

每個測資點只有一筆測資。 第一行有整數n(1<=n<=100)表示這張圖的大小是(n*n)個字元 接下來的n行,每行n個字元表示這張圖的樣子。 只有+、-兩種字元組成(兩種顏色的意思) 在最後一行,有兩個整數i,j表示油漆桶點擊的地點是第(i+1)列第(j+1)個字元,

輸出說明 :

請直接輸出經過油漆桶塗色後的圖案 範例輸入 : help

跟我的領土有多大那題很像,之前還不會的時候是參考這篇的

用遞迴來解

#include<stdio.h>
int n;
char map[101][101];

void print(int a, int b)
{
    if(a<0 || b<0 || a==n || b==n)
        return ;
    if(map[a][b] == '+')
        return ;

    map[a][b] = '+';
    print(a+1,b);
    print(a-1,b);
    print(a,b+1);
    print(a,b-1);
}

int main()
{
    int i,j;

    while(scanf("%d",&n)==1)
    {
        for(i=0; i<n; i++)
            scanf("%s",&map[i]);

        int row,col;
        scanf("%d %d",&row,&col);
        print(row,col);

        for(i=0; i<n; i++)
            printf("%s\n",map[i]);
    }    
    return 0;
}