Untitled
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
int row, col;
scanf("%d %d", &row, &col);
char **m = malloc(sizeof(char*)*row);
for (int i = 0; i < row; i++)
{
m[i] = malloc(sizeof(int)*(col+1));
}
for (int i = 0; i < row; i++)
{
scanf("%s", m[i]);
}
for (int i = 0; i < row+1; i++)
{
for (int j = 0; j < col; j++)
{
int sum = 0;
if (m[i][j] == '*')
printf("*");
else
{
if ((i+1)<row && m[i+1][j] == '*')
sum++;
if ((i + 1)<row && m[i+1][j+1] == '*')
sum++;
if ((i + 1)<row && (j-1)>=0 && (m[i+1][j-1] == '*'))
sum++;
if (m[i][j+1] == '*')
sum++;
if ((j - 1) >= 0 && (m[i][j-1] == '*'))
sum++;
if ((i - 1) >= 0 && m[i-1][j] == '*')
sum++;
if ((i - 1) >= 0 && m[i-1][j+1] == '*')
sum++;
if ((i - 1) >= 0 && m[i-1][j-1] == '*')
sum++;
printf("%d", sum);
}
}
printf("\n");
}
for (int i = 0; i < col; i++)
free(m[i]);
free(m);
return 0;
}
C
INFO