게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 코드 중 한줄 이해안가는 부분 설명좀 부탁드립니다!
게시물ID : jisik_161250짧은주소 복사하기
작성자 : 꼬랑지절단
추천 : 0
조회수 : 502회
댓글수 : 7개
등록시간 : 2013/10/27 22:19:10
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');
}
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호