我在统计*的个数的时候,双重循环都到n也过了,就离谱。
一年前的代码:
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[123][132];
string l;
int main(){
scanf("%lld %lld",&n,&m);
for(int i=0;i<n;i++){
int j=0;
cin>>l;
while(j<=l.size()-1){
if(l[j]=='*')a[i][j]=-100000000;
j++;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(a[i][j]!=-100000000){
if(a[i-1][j]==-100000000)a[i][j]++;
if(a[i][j-1]==-100000000)a[i][j]++;
if(a[i+1][j]==-100000000)a[i][j]++;
if(a[i][j+1]==-100000000)a[i][j]++;
if(a[i-1][j-1]==-100000000)a[i][j]++;
if(a[i-1][j+1]==-100000000)a[i][j]++;
if(a[i+1][j+1]==-100000000)a[i][j]++;
if(a[i+1][j-1]==-100000000)a[i][j]++;
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i][j]!=-100000000)printf("%lld",a[i][j]);
else printf("%s","*");
}
cout<<"\n";
}
}