#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int m, n, count, i, j;
scanf("%d %d", &m, &n);
char **matrix = malloc(sizeof(char *) * m);
for (i = 0; i < m; i++)
{
matrix[i] = malloc(sizeof(char) * (n + 1));
}
for (i = 0; i < m; i++)
{
scanf("%s", matrix[i]);
}
for (i = 0; i < m; i++)
{
for (j = 0; j < (n + 1); j++)
{
if (matrix[i][j] == '*')
{
continue;
}
else if (matrix[i][j] == '.')
{
if(j >= 1 && matrix[i][j - 1] == '*')
count++;
if(j <= 3 && matrix[i][j + 1] == '*')
count++;
if (i >= 1 && j >= 1 &&
matrix[i - 1][j - 1] == '*')
count++;
if (i >= 1 && matrix[i - 1][j] == '*')
count++;
if (i >= 1 && j <= 3 &&
matrix[i - 1][j + 1] == '*')
count++;
if (i <= 3 && j >= 1 &&
matrix[i + 1][j - 1] == '*')
count++;
if (i <= 3 && matrix[i + 1][j] == '*')
count++;
if (i <= 3 && j <= 3 &&
matrix[i + 1][j + 1] == '*')
count++;
matrix[i][j] = count;
}
}
printf("%s", matrix[i]);
printf("\n");
}
return 0;
}
지뢰찾기 문제에서 실행할 때 숫자가 안 나오고 글자가 깨진 형태로 나오는데 왜 이런 건가요?....
메모리 접근이 잘못되어 그렇습니다.
malloc으로 할당한 메모리는 memset으로 초기화하는 것이 좋습니다.
"자주 묻는 질문 목록입니다. 질문 전에 찾아보세요!"에서
Unit 38.8 심사문제: 지뢰 찾기
항목을 찾아보세요.https://dojang.io/mod/forum/discuss.php?d=101