Principle


私信TA

用户名:641024143

访问量:8361

签 名:

等  级
排  名 8226
经  验 1248
参赛次数 0
文章发表 12
年  龄 0
在职情况 学生
学  校 中国石油大学(北京)
专  业

  自我简介:

TA的其他文章

解题思路:
扫雷问题,问题翻译建议不要去找翻译器,这样其实并没有任何提高,一个一个单词去翻译都比直接看中文版要好


注意事项:
定义行列,建立数组初始化是没有用的。

只能用memeset




参考代码:

#include <stdio.h>

#include<iostream>

#include<cstring>

using namespace std;

int main()

{

    int m,n,ccc=0;

    while(1)

    {

        ccc++;

        scanf("%d %d",&m,&n);

        if(m==0&&n==0) break;

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

        int a[m][n];

        memset(a,0,sizeof(a));

        char s[m][n+1];

        for(int i=0; i<m; i++)

        {

            cin>>s[i];

        }

        //s[i-1][j-1] [j+1]

        for(int i=0; i<m; i++)

        {

            for(int j=0; j<n; j++)

            {

                if(s[i][j]=='*')

                {

                    for(int k=i-1; k<=i+1; k++)

                    {

                        if(k<0||k>=m) continue;

                        for(int kk=j-1; kk<=j+1; kk++)

                        {

                            if(kk<0||kk>=n) continue;

                            a[k][kk]++;

                        }

                    }

                }

            }

        }

        for(int i=0; i<m; i++)

        {


            for(int j=0; j<n; j++)

            {

                if(s[i][j]!='*')

                    cout<<a[i][j];

                else

                    cout<<'*';

            }

            cout <<endl;

        }

        cout<<endl;

    }

}


 

0.0分

0 人评分

  评论区

  • «
  • »