코딩도장 지뢰찾기 문제푸는 중인데
5 5
*....
.*.**
.*...
.....
.....
입력하면
*2222
3*3**
2*322
11100
00000
가 나와야 하는데 내가 돌려보면
*1111
2*2**
1*211
11100
00000
처럼 약간씩 안맞게 나와
싸지방이라 디버깅은 못해봤는데 아무리봐도 잘못된데가 안보여ㅠㅠ
밑에 지뢰 근처에꺼 더해주는데서 오류가 나는거같다고 짐작만 하고있는데
형들 머가문제인걸까ㅠ
#include <stdio.h>
int main() {
int m, n;
scanf("%d %d", &m, &n);
char matrix[m+2][n+2];
// 입력받은 네모칸 보다 주변에 한줄 씩 더 배열생성
for (int i = 1; i <= m; i++)
{
scanf("%s", matrix[i]+1);
} // 지뢰는 *, 아니면 . 으로 입력
for (int i = 0; i < m+2; i++)
{
for (int j = 0; j < n+2; j++)
{
if (matrix[i][j] != '*')
matrix[i][j] = 0;
}
} // 입력받아서 *아닌데는 다 0으로 치환 (네모칸 밖의 줄에도 적용)
for (int i = 0; i < m+2; i++)
{
for (int j = 0; j < n+2; j++)
{
if (matrix[i][j] == '*')
{
matrix[i-1][j-1]++;
matrix[i-1][j]++;
matrix[i-1][j+1]++;
matrix[i][j-1]++;
matrix[i][j+1]++;
matrix[i+1][j-1]++;
matrix[i+1][j]++;
matrix[i+1][j+1]++;
}
}
} // 싹 훑어서 *나올때마다 주변8칸에 1씩 더해줌
for (int i = 1; i <= m; i++)
{
for (int j = 1; j <= n; j++)
{
if (matrix[i][j] >= 42)
printf("%c", '*');
else
printf("%d", matrix[i][j]);
}
printf("\n");
} // 네모칸 안 출력
// * 혹은 *에 1,2정도 더해진거는 *로 출력
// 아닌건 정수값 출력
return 0;
}
*에다가도 1 더해버리면 더이상 *이 아니게 되지않겠노 - dc Cpp
if( ~~ == '*') 부분에서 히트가 안된다 이말이야 - dc Cpp
형 사랑한다 이말이야.. 헤응
게이 - dc Cpp
게이들 보기 좋노 ㅇㅅㅇ