题解
2025-09-06 21:12:42
发布于:浙江
1阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
char a[105][105];
int b[105][105];
int main()
{
int n,m;
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++)
{
int k=0;
if(a[i][j]=='?')//判断是否非地雷格,如果是就需要改成数字
{
if(a[i+1][j]=='*')//下
{
k++;
}
if(a[i-1][j]=='*')//上
{
k++;
}
if(a[i][j+1]=='*')//右
{
k++;
}
if(a[i][j-1]=='*')//左
{
k++;
}
if(a[i+1][j+1]=='*')//右下
{
k++;
}
if(a[i-1][j+1]=='*')//右上
{
k++;
}
if(a[i+1][j-1]=='*')//左下
{
k++;
}
if(a[i-1][j-1]=='*')//左上
{
k++;
}
b[i][j]=k;//将四周的地雷数量赋值给b[i][j]
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(a[i][j]!='*')//判断是否为地雷,是就输出*不是输出四周的地雷数
cout<<b[i][j];
else
cout<<"*";
}
cout<<"\n";
}
return 0;
}
方位可能会写错,有错@我就好了
这里空空如也
有帮助,赞一个