求助,样例全过,但测评只有20分
查看原帖
求助,样例全过,但测评只有20分
465817
zhengziao楼主2022/5/1 22:12
#include <iostream>
#include <cstdio>
using namespace std;

char _map[101][101];
int n, m, cnt=0;

void recin()
{
    cin.sync();
    cin.clear();
}

char _get(int i, int j)
{
    char c='$';
    if (i < 1 || j < 1 || i > n || j > m)
    {
        return c;
    }

    return _map[i][j];
}

int main()
{
    cin >> n >> m;
    recin();

    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= m; j++)
        {
            _map[i][j] = getchar();
        }
        recin();
    }

    for(int i = 1; i <= n; i++)
    {
        for(int j = 1; j <= m; j++)
        {
            if(_map[i][j] == '?')
            {
                if(_get(i-1, j-1) == '*')
                    cnt++;
                if(_get(i-1, j  ) == '*')
                    cnt++;
                if(_get(i-1, j+1) == '*')
                    cnt++;
                if(_get(i  , j-1) == '*')
                    cnt++;
                if(_get(i  , j  ) == '*')
                    cnt++;
                if(_get(i  , j+1) == '*')
                    cnt++;
                if(_get(i+1, j-1) == '*')
                    cnt++;
                if(_get(i+1, j  ) == '*')
                    cnt++;
                if(_get(i+1, j+1) == '*')
                    cnt++;
                cout << cnt;
                cnt = 0;
            }
            else
            {
                cout << '*';
            }
        }
        cout << endl;
    }

    return 0;
}

2022/5/1 22:12
加载中...