아이디어 :
일주 둘레 검은 사각형은, 책이 다른 배열을 열 처음 기록 시간 측면 출력 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 }