第二条题解
2024-01-29 22:44:12
发布于:广东
88阅读
0回复
0点赞
#include<stdio.h>
int main(void)
{
char a[101][101];
int sum[100][100]={0};
int j,i,n,m;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%s",a[i]);getchar();
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i][j]=='*')
{sum[i][j]=-1; continue;
}
if(a[i-1][j-1]=='*')
sum[i][j]++;
if(a[i-1][j]=='*')
sum[i][j]++;
if(a[i-1][j+1]=='*')
sum[i][j]++;
if(a[i][j-1]=='*')
sum[i][j]++;
if(a[i][j+1]=='*')
sum[i][j]++;
if(a[i+1][j-1]=='*')
sum[i][j]++;
if(a[i+1][j]=='*')
sum[i][j]++;
if(a[i+1][j+1]=='*')
sum[i][j]++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(sum[i][j]!=-1)
printf("%d",sum[i][j]);
else putchar('*');
}
putchar('\n');
}
return 0;
}
全部评论 1
#include<iostream> using namespace std; int n,m; char A[105][105]={}; void f(int x,int y){ int a=x+1,b=y+1,sum=0; if(A[x][y]=='*'){ cout<<'*'; return ; } for(int i=x-1;i<=a;i++){ for(int j=y-1;j<=b;j++){ if(A[i][j]=='*') sum++; } } cout<<sum; } int main(){ 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++){ f(i,j); }cout<<endl; } }
2024-07-23 来自 浙江
0
有帮助,赞一个