RE求助
查看原帖
RE求助
554226
IE_Steve楼主2023/8/4 16:23
#include<bits/stdc++.h>
using namespace std;
char a[20][20];
int c[20][20];
bool check(int i,int j)
{
	int ans=0;
	if(a[i-1][j]=='.')ans++;
	if(a[i+1][j]=='.')ans++;
	if(a[i][j-1]=='.')ans++;
	if(a[i][j+1]=='.')ans++;
	if(ans<=2)return 1;
	else return 0;
}
int main()
{
	int m,n,x1,x2,y1,y2;
	cin>>m>>n;
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)cin>>a[i][j];
	}
	for(int i=0;i<=m+1;i++)
	{
		for(int j=0;j<=n+1;j++)
		{
			if(a[i][j]==' ')
			{
				a[i][j]='.';
			}
		}
	}
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)if(check(i,j)&&a[i][j]=='X')c[i][j]=1;
	}
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(c[i][j]==1)
			{
				x1=min(x1,i);
				y1=min(y1,j);
				x2=max(x2,i);
				y2=max(y2,j);
			}
		}
	}
	for(int i=x1;i<=x2;i++)
	{
		for(int j=y1;j<=y2;j++)
		{
			if(c[i][j]==1)cout<<"X";
			else cout<<".";
		}
		cout<<endl;
	}
}
2023/8/4 16:23
加载中...