#include <stdio.h>
int main()
{
int row, column;
int cnt = 0;
int m[8][2] =
{
{-1, -1},
{-1, 0},
{-1, 1},
{1, 0},
{1, -1},
{1, 1},
{0, -1},
{0, 1},
};
scanf("%d%d", &row, &column);
char field[row][column];
int ret[row][column];
fflush(stdin);
for(int i = 0; i < row; i++)
{
for(int j = 0; j < column; j++)
{
scanf("%c", &field[i][j]);
}
getchar();
}
for(int i = 0; i < row; i++)
{
for(int j = 0; j < column; j++)
{
if(field[i][j] == '?')
{
for(int l = 0; l < 8; l++)
{
if( i + m[l][0] >= 0 && i + m[l][0] <= row - 1 && j + m[l][1] >= 0 && j + m[l][1] <= column -1 )
{
int temp1 = i + m[l][0];
int temp2 = j + m[l][1];
if(field[temp1][temp2] == '*')
{
cnt++;
}
}
}
ret[i][j] = cnt;
cnt = 0;
}
else if(field[i][j] == '*')
{
ret[i][j] = -1;
}
}
}
for(int i = 0; i < row; i++)
{
for(int j = 0; j < column; j++)
{
if(ret[i][j] == -1)
printf("*");
else
printf("%d", ret[i][j]);
}
printf("\n");
}
return 0;
}
第一个测试点输出结果和答案一样啊?才10分......