求助,为什么b数组一出循环就是0
查看原帖
求助,为什么b数组一出循环就是0
1313895
CLydq楼主2024/3/25 19:48

代码:

#include<bits/stdc++.h>
using namespace std;
int a[105][105],m,n;
int b[105][105];
char c;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>c;
			if(c=='*')b[n][m]=1;
			else b[n][m]=0;
//			cout<<b[n][m];
		}
//		cout<<endl;
	}
//	for(int i=1;i<=n;i++){
//		for(int j=1;j<=m;j++){
//			cout<<b[n][m];
//		}
//		cout<<endl;
//	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(b[n][m]==1)continue;
			if(b[n-1][m]==1)a[n][m]++;
			if(b[n][m-1]==1)a[n][m]++;
			if(b[n-1][m-1]==1)a[n][m]++;
			if(b[n+1][m-1]==1)a[n][m]++;
			if(b[n-1][m+1]==1)a[n][m]++;
			if(b[n][m+1]==1)a[n][m]++;
			if(b[n+1][m]==1)a[n][m]++;
			if(b[n+1][m+1]==1)a[n][m]++;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(b[n][m]==1)cout<<'*';
			else cout<<a[i][j];
		}
		cout<<endl;
	}
	return 0;
}

里面注释掉的cout是用来调试的,循环里的cout显示的b数组没问题但是一到循环外输出就全是0.

2024/3/25 19:48
加载中...