永发信息网

ACM问题 Uvaoj10189

答案:1  悬赏:30  手机版
解决时间 2021-04-03 19:47
  • 提问者网友:欺烟
  • 2021-04-02 21:21
ACM问题 Uvaoj10189
最佳答案
  • 五星知识达人网友:渊鱼
  • 2021-04-02 21:51
#include
#include
#define MAX 101
char map[MAX][MAX];
int ans[MAX][MAX];
int field[MAX][MAX];
int n,m;

bool check(int k ,int l)
{
if(k>=0&&k=0&&l return 1;
else return 0;
}

void found(int k,int l)
{
if(map[k][l]=='*')
{
ans[k][l]=1;
return;
}
if(check(k-1,l))field[k][l]++;
if(check(k-1,l-1))field[k][l]++;
if(check(k-1,l+1))field[k][l]++;
if(check(k,l-1))field[k][l]++;
if(check(k,l+1))field[k][l]++;
if(check(k+1,l-1))field[k][l]++;
if(check(k+1,l))field[k][l]++;
if(check(k+1,l+1))field[k][l]++;
return ;
}

int main()
{
int c = 0;
while(scanf("%d%d",&n,&m)==2 && (n||m))
{
memset(ans,0,sizeof(ans));
memset(field,0,sizeof(field));
gets(map[0]);
for(int i=0;i {
gets(map[i]);
}
for(int i=0;i {
for(int j=0;j {
found(i,j) ;
}
}
if(c) putchar('\n');
printf("Field #%d:\n", ++c);
for(int i=0;i {
for(int j=0;j {
if(ans[i][j]) printf("*") ;
else printf("%d",field[i][j]);
}
printf("\n");
}
}
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯