代码如下:
#include<iostream>
using namespace std;
char a[15][15];
char b[15][15];
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++)
b[i][j]=a[i][j];
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
if(a[i][j]=='.')
continue;
int c=0;
if(a[i+1][j]!='X')
c++;
if(a[i-1][j]!='X')
c++;
if(a[i][j+1]!='X')
c++;
if(a[i][j-1]!='X')
c++;
//cout<<c;
if(c>=3)
b[i][j]='.';
}
//cout<<endl;
}
/*for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++)
cout<<b[i][j];
cout<<endl;
}*/
int t,o,u,l,r;
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
//if(b[i][j]=='.')flag[i][j]=0;
if(b[i][j]=='X'){
o=min(o,i);
l=min(l,j);
u=max(u,i);
r=max(r,j);
}
}
}
//cout<<o<<u<<l<<r<<endl;
/*int p=o;
o=p;*/
for(int i=o; i<=u; i++){
for(int j=l; j<=r; j++){
/*if(b[i][j]=='.') cout<<'.';
else cout<<"X";*/
cout<<b[i][j];
}
cout<<endl;
}
return 0;
}
注:如果把第52行的注释解除,就......
我也不知道为什么