sw검증 시험때문에 c언어 공부중인데 1번부터 막히네요ㅠㅠ
내용은 지뢰찾기이며
문제는
정수 n,m(0<n,m<=100)으로 지뢰밭의 사이즈를 입력받으며
n=m=0인 줄은 입력이 끝났음을 나타내는 것이므로 그 줄은 처리하지 않는다
이런내용이며 코드는 대략 이렇습니다.
#include <stdio.h>
#define MAX_N 100
#define MAX_M 100
void main(void)
{
char row[MAX_M+1]; 여기서 왜 입력받는 row의 크기가 max_m보다 1이 커야하죠?
int n, m, i, j, i2, j2, field_id;
char mf[MAX_N+2][MAX_M+2];
field_id = 1;
scanf("%d %d", &n, &m);
while(n || m){
for(i =1; i <=n; i++)
for(j =1; j<=m; j++)
mf[i][j] = '0';
for(i=1; i<=n; i++){
scanf("%s", row);
for(j =1; j<=m; j++)
if(row[j-1] == '*'){
for(i2 = i -1; i2<=i+1; i2++)
for(j2 = j -1; j2<=j+1; j2++)
if(mf[i2][j2] != '*')
mf[i2][j2]++;
mf[i][j] = '*';
}
}
/* 출력 */
if (field_id>1)
putchar('\n');
printf("Filed #%d : \n", field_id++);
for(i=1; i<= n; i++){
for(j=1; j<= n; j++)
putchar(mf[i][j]);
putchar('\n');
}
putchar('\n');
scanf("%d %d", &n, &m);
putchar('\n');
}
}