5 solutions
-
-3
#include<bits/stdc++.h> using namespace std; int n,m,a[105][105]; char t; int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { cin>>t; if(t=='*') a[i][j]=-1;//是地雷 else a[i][j]=0;//不是地雷 } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { if(a[i][j]!=-1) { int s=0; if(a[i-1][j-1]==-1)s++; if(a[i-1][j]==-1)s++; if(a[i-1][j+1]==-1)s++; if(a[i][j-1]==-1)s++; if(a[i][j+1]==-1)s++; if(a[i+1][j-1]==-1)s++; if(a[i+1][j]==-1)s++; if(a[i+1][j+1]==-1)s++; a[i][j]=s; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) if(a[i][j]==-1) cout<<'*'; else cout<<a[i][j]; cout<<endl; } return 0; } -
-5
解题报告
撰写人: 杜嘉乐
难度等级
★★★★★
参考程序
#include<bits/stdc++.h> using namespace std; int n,m,nx,ny,sum; int dx[8]={-1,-1,0,1,1,1,0,-1}; int dy[8]={0,1,1,1,0,-1,-1,-1}; char a[105][105],c[105][105]; int main(){ cin>>n>>m; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>c[i][j]; } } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ if(c[i][j]=='*') cout<<"*"; else{ sum=0; for(int k=0;k<8;k++){ nx=i+dx[k]; ny=j+dy[k]; if(nx>=0&&nx<n&&ny>=0&&ny<m&&c[nx][ny]=='*') sum++; } cout<<sum; } } cout<<endl; } return 0; }
- 1
Information
- ID
- 293
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 50
- Accepted
- 29
- Uploaded By
为了防抄袭
