2017-01-08 8 views
0

私はプログラミング方法を学んでいますが、私は主にWebの前に他の言語を使用していましたが、C#は私にとって少なくとも理解しにくいですし、msdnサイトはとても複雑です正しく使用することを知っていません。私は2つのエラーが発生して、この方法では2次元配列を表示しようとすると、数独パズルを解くプログラムを構築しようとすると、私が問題に遭遇:2次元配列をメソッドに表示

using System; 
using System.Collections.Generic; 
using System.Linq; 

class Program 
{ 
    static void Main() 
    { 
     int[,] board = new int[9, 9] {{7, 2, 5, 8, 0, 4, 9, 1, 3}, 
             {0, 0, 0, 0, 3, 0, 0, 0, 4}, 
             {0, 0, 0, 0, 0, 1, 8, 2, 6}, 
             {0, 0, 9, 0, 0, 0, 0, 0, 7}, 
             {0, 1, 0, 6, 2, 8, 0, 4, 0}, 
             {2, 0, 0, 0, 0, 0, 5, 0, 0}, 
             {3, 6, 8, 4, 0, 0, 0, 0, 0}, 
             {0, 0, 0, 0, 7, 0, 0, 0, 8}, 
             {0, 0, 0, 0, 0, 2, 6, 9, 5}}; 

     DisplayBoard(board); 

     List<int> missing = new List<int>(); 
     List<int> present = new List<int>(); 
     int temp = 0; 

     for (int i = 0; i < 1; i++) 
     { 
      for (int j = 0; j < 9; j++) 
      { 
       //Console.Write(board[i, j]); 
       if (board[i, j] == 0) 
       { 
        missing.Add(j); 
       } 
       else 
       { 
        present.Add(board[i, j]); 
       } 

       if (present.Count == 8) 
       { 
        for (int x = 0; x < present.Count; x++) 
        { 
         if (!present.Contains(x)) 
         { 
          temp = x; 
         } 
        } 

        board[i, missing[0]] = temp; 
       } 
      } 
      //missing.ForEach(Console.WriteLine); 
     } 
     DisplayBoard(board); 
    } 




    static void DisplayBoard(int[,]) 
    { 
     for (int i = 0; i < 1; i++) 
     { 
      for (int j = 0; j < 9; j++) 
      { 
       Console.Write(board[i, j]); 
      } 
     } 
    } 
} 
+1

エラーは何ですか? – Guy

+1

for(int i = 0; i <1; i ++)のループの目的は何ですか?今は全く役に立たない。私はここで私が9歳以下かどうかを確認する必要があると思う。 –

+0

@SergeyBerezovskiyそれはi <9でなければなりませんが、テスト中は最初の行だけを試しています。 – fakerismyguru

答えて

0

あなたはDisplayBoard方法

のパラメータに名前を与えていません
static void DisplayBoard(int[,] board) 
{ 
    for (int i = 0; i < 1; i++) 
    { 
     for (int j = 0; j < 9; j++) 
     { 
      Console.Write(board[i, j]); 
     } 
    } 
} 
+0

これは動作しますが、なぜですか?ここで関数を呼び出すと、配列であると呼びます:DisplayBoard(board); ? – fakerismyguru

+0

@fakerismyguru 'DisplayBoard'は' int [、] '型のパラメータを取得します。このパラメータを使用するには、このパラメータに名前を付ける必要があります(コンパイルエラーを避けるために)。 – Guy