Description
你的任务是在已知地雷出现位置的情况下,得到各个方块中的数据。
Input
Output
Sample Input
Sample Output
AC代码:
#include<stdio.h>
#include<string.h>
int main ()
{
char a[100][100];
int i,j,m,n,z,t; //b[100][100];
while (~scanf("%d%d",&m,&n)&&m+n) //&&m+n 意味都不等于0;
{
int b[100][100]={0}; //memset(b,0,sizeof(b));
for(i=0; i<m; i++)
{
getchar(); //消除空行的影响;
for(j=0; j<n; j++)
scanf("%c",&a[i][j]); //逐个输入字母;
}
for(i=0; i<m; i++)
for(j=0; j<n; j++)
{
if(a[i][j]=='*') //判断个数的前提;
{
for(z=i-1; z<=i+1; z++)
for(t=j-1; t<=j+1; t++) //周围八个位置(二维数组);
if(a[z][t]!='*')
b[z][t]++; //位置对应数++;
}
}
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
if(a[i][j]=='*')
printf("*");
else
printf("%d",b[i][j]);
}
printf("\n"); //每一行的换行;
}
printf("\n"); //每组测量数据的换行;
}
return 0;
}
总结:扫雷问题:
1.整懂题意;
2.二维数组的使用,二位字符数组的输入,使用;