# Minescreeper 題目連結 [UVA 10189]() ## 中文簡述 ## [think] ## solution: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> char map[103][103]; int num[103][103]; int dxdy[8][0] = {1,0,0,1,-1,0,0,-1,1,-1,-1,1,1,1,-1,-1}; int main() { int m,n,c=1,i,j,x,y,k; while (cin>>m>>n and m+n ) { for(i=0;i<n;i++) { cin>>mas[i]; } memset(num,0,sizeof(num)); for (i=0;i<n;i++) { for (j=0;j<m;j++) { if (maps[i][j]=='*') { for (k=0;k<8;k++) { x=i+dxdy[k][0]; y=j+dxdy[k][1]; if (x>=0 && x<n && y>=0 && y<m) { ++ numb[x][y]; } } } } } if (c>1) { cout<<endl; } cout<<"Field #"<<c++<<":"<<endl; for(i=0;i<n;i++) { for(j=0;j<m;j++) { if(maps[i][j]=='*') { cout<<"*"; } else { cout<<numb[i][j]; } } cout<<endl; } } return 0; } ``` ###### tags: `UVA` 回目錄 [學習筆記](/gIBZqAbWTCis7uOPp149gA)