题解 | 扫雷
扫雷
https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd
#include <stdio.h> int judement(int r,int c,int n,int m)//判断是否越界 { if(r<0||c<0||r>n-1||c>m-1) { return 0; } return 1; } int count_boom(char arr1[1000][1000],int r,int c,int n,int m)//数雷的个数 { int count=0; for(int i =-1;i<=1;i++) { for(int j =-1;j<=1;j++) { int result = judement(r+i,c+j,n,m); if(result==0) { continue; } if(arr1[r+i][c+j]=='*') count++; } } return count; } int main() { int n,m; scanf("%d %d",&n,&m); char arr1[1000][1000]; for(int i =0;i<n;i++) { for(int j=0;j<m;j++) { scanf(" %c",&arr1[i][j]); } } for(int i =0;i<n;i++) { for(int j=0;j<m;j++) { if(arr1[i][j]=='*') { printf("*"); } else{ int count = count_boom(arr1,i,j,n,m); printf("%d",count); } } printf("\n"); } return 0; }