help……
2024-06-08 21:47:37
发布于:广东
40阅读
0回复
0点赞
大佬在哪里!
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
char a[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>a[i][m];
}
}
char b[n][m];
//memset(b,'\0',sizeof(b));
int pd;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
pd=0;
if(a[i][j]=='?' and i>=2 and j>=2 and i+1<n and j+1<m)
{
if(a[i-1][j]=='*')
{
pd++;
}
if(a[i-1][j-1]=='*')
{
pd++;
}
if(a[i-1][j+1]=='*')
{
pd++;
}
if(a[i][j-1]=='*')
{
pd++;
}
if(a[i][j+1]=='*')
{
pd++;
}
if(a[i+1][j-1]=='*')
{
pd++;
}
if(a[i+1][j]=='*')
{
pd++;
}
if(a[i+1][j+1]=='*')
{
pd++;
}
b[i][j]=pd+'0';
}
else
{
b[i][j]='*';
}
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cout<<b[i][j];
}
cout<<endl;
}
return 0;
}
全部评论 4
char a[n][m]是在编译时执行
cin>>n>>m是在运行时执行
所以n和m在编译时是随机的2024-08-17 来自 广东
0我的代码跟你差不多可以参考
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; char a[105][105]; cin >> n >> m; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin >> a[i][j]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ int sum=0; if(a[i][j]=='?'){ if(a[i+1][j]=='*'){ sum++; } if(a[i+1][j-1]=='*'){ sum++; } if(a[i+1][j+1]=='*'){ sum++; } if(a[i-1][j]=='*'){ sum++; } if(a[i-1][j+1]=='*'){ sum++; } if(a[i-1][j-1]=='*'){ sum++; } if(a[i][j+1]=='*'){ sum++; } if(a[i][j-1]=='*'){ sum++; } cout << sum; }else{ cout << a[i][j]; } } cout << endl; } return 0; }
2024-08-09 来自 广东
0int dls(int c,int d){ int sum=0,x,y,c1=c-1,d1=d-1; if(c1<0) c1=0; if(d1<0) d1=0; for(x=c1;x<=c+1&&x<n;x++){ for(y=d1;y<=d+1&&y<m;y++){ if(a[x][y]=='*'){ sum++; } } } return sum; }
用for不香吗
2024-07-19 来自 浙江
01.不要使用char a[n][m],请使用char a[105][105],b也是
2.cin>>a[i][m]应为cin>>a[i][j]
3.边上的'?'您不管了吗?
4.建议使用&&而非and
5.建议把a,b定义在全局并将数组的下标从1开始使用,可以少判很多特殊情况2024-06-08 来自 上海
0ee
2024-06-08 来自 广东
0
有帮助,赞一个