字符数组

Star 2021-11-18 18:59:07 2021-11-26 21:29:58

#include <iostream>
#define N 22
using namespace std;
char maps[N][N];
int ans, m, n;
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, -1, 0 ,1};
void dfs(int a, int b){
    for(int i = 0; i < 4; ++i){
        int x = a + dx[i], y = b + dy[i];
        if(x > 0 && x <= n && y > 0 && y <= m && maps[x][y] == '.'){
            ans++;
            maps[x][y] = '#';
            dfs(x, y);
        }
    }

}
int main(){
    int a, b;
    while(cin >> m >> n && m && n){
        ans = 1;
        for(int i = 1; i <= n; ++i){
            for(int j = 1; j <= m; ++j){
                cin >> maps[i][j];
                if(maps[i][j] == '@') {
                    a = i; b = j;
                }
            }
        }
        dfs(a, b);
        cout << ans << endl;
    }
    return 0;
}