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