醒醒别睡了


私信TA

用户名:Leopoid

访问量:1226

签 名:

等  级
排  名 25312
经  验 599
参赛次数 0
文章发表 2
年  龄 0
在职情况 学生
学  校 haha
专  业

  自我简介:

TA的其他文章

解题思路:愚笨的方法

注意事项:

参考代码:



#include <stdio.h>

#define N 1000

int main() {


int n1, n2;

char sl[N][N];

int i, j, m, n, count1,count2;

count1 = 0;

count2=0;

while(scanf("%d %d", &n1, &n2)&&(n1!=0&&n2!=0)){

// getchar();

for (i = 0; i < n1; i++) {

// scanf_s("%s", sl[i],n2+1);//这里的n表示缓冲区大小,最多只能容纳n-1个字符*/

scanf("%s",sl[i]);

}


// printf("\n");


//解决中间部分的数字 

for (i = 1; i < n1-1; i++) {

for (j = 1; j < n2-1; j++) {

if (sl[i][j] == '.') {

for (m = i - 1; m <= i + 1; m++) {

for (n = j - 1; n <= j + 1; n++) {

if (sl[m][n] == '*') {

count1++;

}

}

}

sl[i][j] = count1+48;

count1 = 0;

}

}

}

//解决上边的数字 

for(j=1;j<n2-1;j++){

if(sl[0][j]=='.'){

for(i=0;i<2;i++){

for(m=j-1;m<=j+1;m++){

if(sl[i][m]=='*'){

count1++;

}

}

}

sl[0][j]=count1+48;

count1=0;

}


for(j=1;j<n2-1;j++){

if(sl[n1-1][j]=='.'){

for(i=n1-2;i<n1;i++){

for(m=j-1;m<=j+1;m++){

if(sl[i][m]=='*'){

count1++;

}

}

}

sl[n1-1][j]=count1+48;

count1=0;

}

for(i=0,j=0;i<n1;i++){

if(sl[i][j]=='.'){

for(m=i-1;m<=i+1;m++){

for(n=j;n<=j+1;n++){

if(sl[m][n]=='*'){

count1++;

}

}

}

sl[i][j]=count1+48;

count1=0; 

}

}


for(i=0,j=n2-1;i<n1;i++){

if(sl[i][j]=='.'){

for(m=i-1;m<=i+1;m++){

for(n=j-1;n<=j;n++){

if(sl[m][n]=='*'){

count1++;

}

}

}

sl[i][j]=count1+48;

count1=0; 

}

}

count2++;

printf("Field #%d:\n",count2);

for (i = 0; i < n1; i++) {

printf("%s\n",sl[i]);

}

printf("\n");

}

return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »