Uva232クロスワードパズルの答え(クロスワードの答え)

アイデア:

  一週間周囲黒矩形、本は別の配列を開き、グリッド最初に記録された時間が重複を避けるために、横方向出力のk次電池の出力開始位置、出力を使用して決定し、出力の垂直介して出力します出発細胞出力は重複を避けるために0に設定されています。

ACコード

フォーマットのprintf(「%3dは」)、デジタル出力を第3文字以下の場合に出力され、従って%3dとを出力することに注意してください

1の#include <stdio.hの>
 2の#include < ストリング・H>
 3  チャー [ 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 ++)     // 最初の外円黒い四角形
20は     、{
 21である          [ 0 ] [J] = ' * ' ;     // 横長方形の側     
22は、          [R&LT + 。1 ] [J] = ' * ' ;     // 水平方向の長方形の側
23      }
 24      // 入力     
25      のためにINT I = 1 ; I <= R&LT; Iは、++は)     // 入力
26は     {
 27          のInt J = 1。 ; J <= C; J ++ 28          {
 29               scanfの(" %のC "、&​​A [I] [J]);
 30               // 出発細胞数を決定
31である             IF((([I] [J - 1 ] == ' * ')||([I - 。1 ] [J] == ' * '!))&& A [I] [J] = ' * ' 32                  ブック[I] [ J] COUNT = ++ ;
 33である         }    
 34が          GETCHAR();     // 食べ改行
35      }
 36      であれば(!NUM = 1 37          のprintf(" の\ n " );
38      のprintf(" パズル#%dの:\ N "、NUM ++ );
39      // 横向输出
40      のprintf(" \ nを越えました" );
41      のためにint型 I = 1 ; I <= R iが++ 42      {
 43          、K = 1 44          のためにINT J = K; J <= C; J ++ 45          {
 46              であれば(ブック[I] [J] =!0 47              {
 48                  のprintf(" %3D%C。" 、書籍[I]、[J]、[I] [J])。
49                  K = J + 1 50                  一方、((K)<= C && [I] [K] =!' * ' 51                  {
 52                      のprintf(" %のC " 、[I] [K])。
53                      K ++ 54                  }
 55                  J =K;    
56                  のprintf(" の\ n " );
57              }
 58          }    
 59      }
 60      のprintf(" ダウンの\ n " );
61      のためにint型 I = 1 ; I <= R iが++ 62      {
 63          、K = 1 64          のためのint型 J = 1 ; J <= C; J ++ 65          {
 66              であれば(海外[I] [J] = 0 67              {
 68                  のprintf(" %3D%のC。" 、書籍[I]、[J]、[I] [J])。
69                  本は、[I] [J] = 0を70                  K = I +は1 ;
71                  一方、((K)<= R && [K] [J] =!' * ' 72                  {
 73                      のprintf(" %のC " 、[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