普通做法
2024-09-10 20:07:46
发布于:上海
10阅读
0回复
0点赞
这道题不难。先创建二维字符数组,然后如果不是地雷,把周围一圈遍历一遍(可以用数组把周围一圈的相对位置存下来),如果有地雷和就+1,最后输出。话不多说直接上代码。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,y,s;
cin>>x>>y;//输入矩阵大小
char a[105][105];//定义二维字符数组,空间开大点。
int p1[8]={-1,-1,-1,0,0,1,1,1};//方向的表示(x坐标)
int p2[8]={-1,0,1,-1,1,-1,0,1};//方向的表示(y坐标)
for (int i=0;i<x;i++)
{
for (int j=0;j<y;j++)cin>>a[i][j]; //输入字符数组。
}
for (int i=0;i<x;i++)
{
for (int j=0;j<y;j++)
{
if (a[i][j]=='*')
cout<<"*";//如果是地雷直接输出*
else
{
s=0;
for (int k=0;k<8;k++)//遍历周围一圈八个位置
{
if (a[i+p1[k]][j+p2[k]]=='*')
{
s++;}//如果找到周围有一个地雷则和+1
}
cout<<s;
}
}
cout<<endl;
}
return 0;//Over
}
本蒟蒻的第一篇题解,求过。
这里空空如也
有帮助,赞一个