Quick actions

cmd+k|ctrl+k

Navigation

Languages

Unit 38.8

Snippet info

Language

C

Visibility

unlisted

Author

legacy-anonymous

Created

2019-01-31T05:12:11Z

Updated

2019-01-31T05:12:11Z

#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>
int main()
{
   int m = 0, n = 0, i = 0, j = 0, num = 0;
   scanf("%d %d", &m, &n);
   char *array = malloc(sizeof(char *) m);
   for (i = 0; i < m; i++)
   {
      array[i] = malloc(sizeof(char) (n + 1));
      memset(array[i], 0, sizeof(char) (n + 1));
   }
   for (i = 0; i < m; i++)
   {
      scanf("%s", array[i]);
   }
   for (j = 0; j < n; j++)
   {
      for (i = 0; i < m; i++)
      {
         if (array[i][j] != '*')
         {
            array[i][j] = 48;
         }
      }
   }
   //////////////////////////////
   if (array[0][0] != '*')
   {
      if (array[0][1] == '*')
         array[0][0] += 1;
      if (array[1][0] == '*')
         array[0][0] += 1;
      if (array[1][1] == '*')
         array[0][0] += 1;
   }
   ///////////////////////////////
   if (array[m - 1][0] != '*')
   {
      if (array[m - 1][1] == '*')
         array[m - 1][0] += 1;
      if (array[m - 2][0] == '*')
         array[m - 1][0] += 1;
      if (array[m - 2][1] == '*')
         array[m - 1][0] += 1;
   }
   ///////////////////////////////
   if (array[0][n - 1] != '*')
   {
      if (array[1][n - 2] == '*')
         array[0][n - 1] += 1;
      if (array[0][n - 2] == '*')
         array[0][n - 1] += 1;
      if (array[1][n - 1] == '*')
         array[0][n - 1] += 1;
   }
   ///////////////////////////////
   if (array[0][n - 1] != '*')
   {
      if (array[m - 1][n - 2] == '*')
         array[m - 1][n - 1] += 1;
      if (array[m - 2][n - 2] == '*')
         array[m - 1][n - 1] += 1;
      if (array[m - 2][n - 1] == '*')
         array[m - 1][n - 1] += 1;
   }
   ///////////////////////////////
   for (i = 1; i < m - 1; i++)
   {
      if (array[i][0] != '*')
      {
         if (array[i - 1][0] == '*')
            array[i][0] += 1;
         if (array[i + 1][0] == '*')
            array[i][0] += 1;
         if (array[i - 1][1] == '*')
            array[i][0] += 1;
         if (array[i][1] == '*')
            array[i][0] += 1;
         if (array[i + 1][1] == '*')
            array[i][0] += 1;
      }
      if (array[i][n - 1] != '*')
      {
         if (array[i - 1][n - 1] == '*')
            array[i][n - 1] += 1;
         if (array[i + 1][n - 1] == '*')
            array[i][n - 1] += 1;
         if (array[i - 1][n - 2] == '*')
            array[i][n - 1] += 1;
         if (array[i][n - 2] == '*')
            array[i][n - 1] += 1;
         if (array[i + 1][n - 2] == '*')
            array[i][n - 1] += 1;
      }
   }
   /////////////////////////////////////////////////////
   for (i = 1; i < n - 1; i++)
   {
      if (array[0][i] != '*')
      {
         if (array[0][i - 1] == '*')
            array[0][i] += 1;
         if (array[0][i + 1] == '*')
            array[0][i] += 1;
         if (array[1][i - 1] == '*')
            array[0][i] += 1;
         if (array[1][i] == '*')
            array[0][i] += 1;
         if (array[1][i + 1] == '*')
            array[0][i] += 1;
      }
      if (array[m - 1][i] != '*')
      {
         if (array[m - 1][i - 1] == '*')
            array[m - 1][i] += 1;
         if (array[m - 1][i + 1] == '*')
            array[m - 1][i] += 1;
         if (array[m - 2][i - 1] == '*')
            array[m - 1][i] += 1;
         if (array[m - 2][i] == '*')
            array[m - 1][i] += 1;
         if (array[m - 2][i + 1] == '*')
            array[m - 1][i] += 1;
      }
   }
   /////////////////////////////////////////////////////
   for (i = 1; i < m - 1; i++)
   {
      for (j = 1; j < n - 1; j++)
      {
         if (array[i][j] != '*')
         {
            if (array[i - 1][j - 1] == '*')
               array[i][j] += 1;
            if (array[i - 1][j] == '*')
               array[i][j] += 1;
            if (array[i - 1][j + 1] == '*')
               array[i][j] += 1;
            if (array[i][j - 1] == '*')
               array[i][j] += 1;
            if (array[i][j + 1] == '*')
               array[i][j] += 1;
            if (array[i + 1][j - 1] == '*')
               array[i][j] += 1;
            if (array[i + 1][j] == '*')
               array[i][j] += 1;
            if (array[i + 1][j + 1] == '*')
               array[i][j] += 1;
         }
      }
   }
   /////////////////////////////////////////////////////
   for (i = 0; i < n; i++)
   {
      printf("%s\n", array[i]);
   }
   for (i = 0; i < m; i++)
   {
      free(array[i]);
   }
   free(array);
   return 0;
}
INFO