扫雷
我们总共要有m*n个字符要放进去
要有一个棋盘 但为了估计最边缘的棋子,所以要创建一个n+2行,m+2列的棋盘
具体看代码
#include <stdio.h> int main() { int n=0;//行 int m=0;//列 scanf("%d %d",&n,&m); getchar();//吃掉最后的回车键 char arr[n+2][m+2]; char a=0; long i=0; long j=0; //初始化棋盘 for(i=0;i<n+2;i++) { for(j=0;j<m+2;j++) { arr[i][j]='0'; } } //给棋盘赋值 for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { scanf("%c",&a); arr[i][j]=a; } getchar();//吃掉回车键 } //判断是否有雷 for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(arr[i][j]=='*') { continue; } else { int cun = 0; if (arr[i - 1][j] == '*') cun++; if (arr[i - 1][j - 1] == '*') cun++; if (arr[i][j - 1] == '*')cun++; if (arr[i + 1][j - 1] == '*') cun++; if (arr[i + 1][j] == '*') cun++; if (arr[i + 1][j + 1] == '*') cun++; if (arr[i][j + 1] == '*') cun++; if (arr[i - 1][j + 1] == '*') cun++; arr[i][j] = cun + 48; } } } //打印棋盘 for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { printf("%c",arr[i][j]); } printf("\n"); } return 0; }