[2015年NOIP普及组] 扫雷游戏

题目大意:现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。注:一个格子的周围格子包括其上、下、左、右、左上、右上、左下、右下八个方向上与之直接相邻的格子。

题目不是很难,用暴力搜索一遍就行。

代码如下:

#include<iostream>
#include<cstdio>
using namespace std;
char a[105][105];
int c[105][105];
int main()
{
int n,m,b=0;
cin>>n>>m;
for(int i=1;i<=n;++i) //输入行
{
for(int j=1;j<=m;++j) //输入列
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{
if((int)a[i][j]==63)
{
if((int)a[i+1][j]==42)
b++;
if((int)a[i-1][j]==42)
b++;
if((int)a[i+1][j+1]==42)
b++;
if((int)a[i-1][j-1]==42)
b++;
if((int)a[i+1][j-1]==42)
b++;
if((int)a[i-1][j+1]==42)
b++;
if((int)a[i][j-1]==42)
b++;
if((int)a[i][j+1]==42)
b++;
c[105][105]=b;
cout<<c[105][105];
b=0;
}
else
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}