疑惑
空间开的正好就会出错,多1个就不会,帮忙解释一下
#include <iostream> using namespace std; int main(){ int n,m; cin>>n>>m; char a[n+1][m+1]; char b[n][m]; for(int i=0;i<n;i++){ for(int j =0;j<m;j++){ cin>>a[i][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ int num=0; if(a[i][j]=='*'){ b[i][j]='*'; } else { if(a[i-1][j-1]=='*') num++; if(a[i-1][j]=='*') num++; if(a[i-1][j+1]=='*') num++; if(a[i][j-1]=='*') num++; if(a[i][j+1]=='*') num++; if(a[i+1][j-1]=='*') num++; if(a[i+1][j]=='*') num++; if(a[i+1][j+1]=='*') num++; b[i][j]=num+'0'; } } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cout<<b[i][j]; } cout<<endl; } return 0; }