Uva232 크로스 워드 퍼즐의 답 (크로스 워드 답변)

아이디어 :

  일주 둘레 검은 사각형은, 책이 다른 배열을 열 처음 기록 시간 측면 출력 K 다음 전지 출력 시작 위치를 사용하여 결정 격자는 중복을 피하기 위해 출력은 출력의 수직 통해 출력 될 시작 전지 출력은 중복을 피하기 위해 0으로 설정된다.

AC 코드

포맷의 printf ( "% 차원")는, 디지털 출력이 세 번째 문자 이하의 경우에 출력되고, 따라서 % 차원 출력 유의

1 #INCLUDE <STDIO.H>
 2 #INCLUDE < 문자열 .H>
 3  문자 A [ 12 ] [ 12 ]; 
4  INT의 책 [ 12 ] [ 12 ];
5  INT의 주 ()
 6  {
 7      INT의 R, C, NUM = 1 ;
8      동안 (는 scanf ( " %의 D ' , R) == 1 && R) -
 (9)  {
 10      는 scanf ( " %의 D " , 및 C);
(11)     getchar가 ();      // 개행 먹을 
12는      INT에서 = COUNT . 1 , K = 0 ;    
 13이다      // 첫번째 행 첫 검은 사각형 외측 원 같은 일반화 될 수있다 
(14)      에 대해 ( int로 I = 0 I는 <; + R & LT 2 ; I ++ )     
 15      {
 16          A [I] [ 0 ] = ' * ' ;     // 직사각형의 왼쪽 수직 가장자리     
. 17          A [I] [C의 + . 1 ] = ' * ' ;     // 직사각형 오른쪽 수직 가장자리 
(18)      }
 (19)     위한 ( INT J = 0 ; J <C + 2 , J ++)     // 제 1 외측 원 검은 직사각형 
(20)는      {
 (21)가          A [ 0 ] [J] = ' * ' ;     // 가로 장방형 편     
(22)이          A [R & LT + . 1 ] [J] = ' * ' ;     // 가로 장방형 측면 
23      }
 24      // 입력     
(25)      에 대한 ( INT I = 1. ; I <= & lt; 화학식 I가 ++)이     // 입력 
(26)가      {
 27          ( 지능 J = 1. , J <= C, J ++ )
 28          {
 29               는 scanf ( " %의 C " , & A [I] [J]);
 30               // 시작 셀 번호를 결정 
(31)는              IF (((A [I] [J - . 1 ] == ' * ' ) || (A [I - . 1 ] [J] == ' * ' !)) && A [I] [J] = ' * ' )
 32                  책 [I] J] COUNT = ++ ;
 33이다          }    
 34는          getchar가 ();     // 먹게 개행
35      }
 36      의 경우 (! NUM = 1 )
 (37)          의 printf ( " \ n을 " );
38      의 printf ( " 퍼즐 # 1 %의 D : \ n " , NUM ++ );
39      // 横向输出
40      의 printf ( " \ n을 건너 " );
(41)      에 대한이 ( int로 I = 1 ; I <= (R)] 나 ++ )
 42      {
 43          (K) = 1 ;
44           ( INT을 J = K, J <= C, J ++ )
45          {
 46              의 경우 (! 책 [I] [J] = 0 )
 (47)              {
 48                  의 printf ( " . % 3D %의 C " 책 [I] [J], A [i]를 [J]);
49                  K = J + 1 ;
50                  동안 ((K) <= C && A [i]는 [K] =! ' * ' )
 51                  {
 52                      의 printf ( " %의 C ' , A [i]는 [K]);
53                      K ++ ;
54                  }
 55                  J =케이;    
56                  의 printf ( " \ n을 " );
57              }
 58          }    
 59      }
 60      의 printf ( " 다운 \ n을 " );
(61)      에 대한이 ( int로 I = 1 ; I <= (R)] 나 ++ )
 62      {
 63          (K) = 1 ;
64           ( INT의 J = 1 ; J <= C, J ++ )
 65          {
 66              의 경우 (! 책 [I] [J] = 0 )
67              {
 68                  의 printf ( " % 3D %의 C. " 책 [I] [J], A [i]를 [J]);
69                  책 [I] [J] = 0 ;
70                  K = 1이 + 1 ;
71                  동안 ((K) <= R && A [K] [J]! = ' * ' )
 72                  {
 73                      의 printf ( " %의 C ' , A [K]를 [J]);
74                      책 [K]는 [J] = 0 ;
75                      K ++ ;
76                      
77                 }    
 78                  의 printf ( " \ n을 " );
79              }
 80          }    
 81      }
 82  }
 83      
84      복귀  0 ;
85 }

 

추천

출처www.cnblogs.com/witharush/p/11423402.html