数独を解く 1:二次元の配列の出力

第3回目からは数独を解くプログラムの作成です。
数独 とは,次のような 3x3 の升目をもつ枠を 3x3 だけ並べてある表がある。この表 の空欄を埋める問題であるが、小さな3x3の升目には1から9の文字を一回だけ 使うことができ、全体の立てと横でも、重複して使うことができないというルール である。
   6
  7 
8  
   
  6 
1  3
   1
  5 
2  
   5
  4 
   8
  4 
7  2
  1 
8  
  9 
7  
   1
  6 
2  
2  5
  7 
   
   3
  8 
4  
これを解くには
{
    問題を入力する;
    問題を表にして表示する;
    問題を解く;
    答えを表にして表示する;
}
というプログラムになる。そこで、 この 9x9 の配列を表示するプログラムを作成してみるのが今回の問題 である。
問題の配列は、sudoku[9][9]という二次元の配列でも、 sudoku[81] という一次元の配列でも良い。 また、構造体を知っているものは、3x3 の配列の3x3倍として、
typedef struct sudoku_s {
   int el[3][3];
} SDK sudoku[3][3];
としてもよい。解説はもっとも複雑な(?)1次元配列で行う。
Copyright 2006 Ken Kishimoto