边界限制咋就不行了呢
查看原帖
边界限制咋就不行了呢
697698
Bingdundun楼主2022/3/16 22:30
#include <iostream>
using namespace std;
int n,m;
int a[106][106];
int calc(int x,int y)
{
	int count=0;
	if(x>=2&&a[x-1][y]==-1)
		count++;
	if(x<=m-1&&a[x+1][y]==-1)
		count++;
	if(x>=2&&y<=n-1&&a[x-1][y+1]==-1)
		count++;
	if(y<=n-1&&a[x][y+1]==-1)
		count++;
	if(x<=m-1&&y<=n-1&&a[x+1][y+1]==-1)
		count++;
	if(x>=2&&y>=2&&a[x-1][y-1]==-1)
		count++;
	if(y>=2&&a[x][y-1]==-1)
		count++;
	if(x<=m-1&&y>=2&&a[x+1][y-1]==-1)
		count++;
	return count;
}
int main()
{
	cin>>n>>m;
	char c;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>c;
			if(c=='*')
				a[i][j]=-1;
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]!=-1)
				a[i][j]=calc(i,j);
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]!=-1)
				cout<<a[i][j];
			else{
				cout<<"*";
			}
		}
		cout<<endl;
	}
	return 0;
}
2022/3/16 22:30
加载中...