结果全是“*”,求调
  • 板块P1101 单词方阵
  • 楼主OIYu
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/31 16:54
  • 上次更新2024/8/31 20:24:25
查看原帖
结果全是“*”,求调
1413253
OIYu楼主2024/8/31 16:54

(我用的纯循环)

#include<bits/stdc++.h>
using namespace std;
int n;
char mp[105][105]; 
int ans[105][105];

int dx[]={0,0,-1,-1,-1,1,1,1};
int dy[]={-1,1,0,1,-1,0,1,-1};
string s="yizhong";
bool flag=0;
int x,y;

int main(){
	cin>>n;
	for(int i=0;i<n;i++)scanf("%s",mp[i]);
	
	for(int I=0;I<n;I++){
		for(int J=0;J<n;J++){
			if(mp[I][J]=='j'){
				for(int i=0;i<8;i++){
					x=I,y=J;
					for(int j=1;j<7;j++){
						x+=dx[i],y+=dy[i];
						if(x>=0&&x<n&&y>=0&&y<n){
							if(mp[x][y]!=s[j]){
								flag=1;
								break;
							}
						}
					}
					if(!flag){
						int x=I,y=J;
						ans[x+dx[i]*0][y+dy[i]*0]=1;
						ans[x+dx[i]*1][y+dy[i]*1]=1;
						ans[x+dx[i]*2][y+dy[i]*2]=1;
						ans[x+dx[i]*3][y+dy[i]*3]=1;
						ans[x+dx[i]*4][y+dy[i]*4]=1;
						ans[x+dx[i]*5][y+dy[i]*5]=1;
						ans[x+dx[i]*6][y+dy[i]*6]=1;
						flag=0;
					}
				}
			} 
		}
	}
	
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			if(ans[i][j]==1)cout<<mp[i][j];
			else cout<<'*';
		}
		cout<<'\n';
	}
	return 0;
}

2024/8/31 16:54
加载中...