洛谷P2670 一直是RE
谢谢 这是为啥
#include<stdio.h>
int main(){
int m,n,i,j,num[i][j],res[i][j];
char fuhao[i][j];
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
scanf("%s",&fuhao[i][j]);
if(fuhao[i][j]=='?')num[i][j]=0;
else num[i][j]=1;num[0][j]=0;num[i][0]=0;num[n+1][j]=0;num[i][m+1]=0;}getchar();}
res[i][j]=num[i-1][j-1]+num[i-1][j]+num[i-1][j+1]+num[i][j-1]+num[i][j+1]+num[i+1][j-1]+num[i+1][j]+num[i-1][j+1];
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(num[i][j]==0)printf("*");
else printf("%d",res[i][j]);}}
return 0;
}
num[i][j],res[i][j]; 数组定义不能是变量,修改为:num[125][125],res[125][125];
fuhao[i][j]; 改为:fuhao[125][125];
scanf("%s",&fuhao[i][j]); 修改为:scanf("%c",&fuhao[i][j]);
这一题也还好吧。。。
(在洛谷上也是入门)。。。
啊呸,开始正文
```
#include<bits/stdc++.h>
using namespace std;
bool a[105][105];
int main(){
memset(a,0,sizeof(a));
int n,m;
char tmp;
cin>>n>>m;
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
cin>>tmp;
if(tmp==''){
a[i][j]=1;
}
}
}
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
if(a[i][j]==1){
printf("");
}
else{
printf("%d",a[i+1][j+1]+a[i+1][j-1]+a[i+1][j]+a[i][j+1]+a[i][j-1]+a[i-1][j+1]+a[i-1][j]+a[i-1][j-1]);
}
}
printf("\n");
}
return 0;
}
```c++
scanf 在这里可以不用吧。。
改成scanf("%c"。。。)就行了把
本人是蒟蒻,有错请纠正
https://www.luogu.com.cn/record/89093498