为什么列要多出一位??
查看原帖
为什么列要多出一位??
435308
大白菜菜楼主2021/2/26 20:38

注意我二重循环内层是多出一位的,并且判断列的时候都要多一位,这是为什么???如果不加那一位整个图都赋值错了,这是为什么,是因为最后的换行符的原因吗?求大佬解答

#include<bits/stdc++.h>
using namespace std;
char mpp[100][100];
int n,m,sum;
void dfs(int x,int y){
	mpp[x][y]='*';
	for(int i=-1;i<=1;i++){
		for(int j=-1;j<=1;j++){
			int xx=x+i;
			int yy=y+j;//下面yy也要多判断一位
			if(xx>=0&&yy>=0&&xx<n&&yy<=m&&mpp[xx][yy]=='W'){
				dfs(xx,yy);
			}
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=0;i<n;i++){
		for(int j=0;j<=m;j++){ //要多一位
			scanf("%c",&mpp[i][j]);
		}
	}
	for(int i=0;i<n;i++){
		for(int j=0;j<=m;j++){ //要多一位
			if(mpp[i][j]=='W'){
				dfs(i,j);
				sum++;
			}
		}
	}
	cout<<sum;
	
	return 0;
} 
2021/2/26 20:38
加载中...