2013-11-25 52 views
-1

我需要填充一個數組並將該數組顯示到控制檯(以表格格式)。我如何顯示2D數組的表格?

這是我到目前爲止有:

static void Main() 
    { 
     //Declare variables, strings and constants. 

     const int ROWS = 10; 
     const int COLS = 5; 
     const int MIN = 1; 
     const int MAX = 100; 
     int total = 0; 

     int[,] numbers = new int[ROWS, COLS]; 
     Random rand = new Random(); 

     //Populate the array 

     for (int r = 0; r < ROWS; ++r) 
     { 
      for (int c = 0; c < COLS; ++c) 
      { 
       numbers[r, c] = rand.Next(MIN, MAX + 1);      
      } 
     } 

     //Display the array to console (table format) 

     for (int r = 0; r < numbers.GetLength(0); ++r) 
     { 
      for (int c = 0; c < numbers.GetLength(1); ++c) 
      { 
       Console.Write("{0,6} ", numbers[r, c]); 
       if (c % 5 == 0) Console.WriteLine(); 

      } 
     } 

當我這樣做,我的顯示器如果關閉的1,不爲10x5表正確對齊。

+0

什麼是你的問題? – zerkms

回答

0

您可以檢查是否列索引加一,c + 1,等於給定的列數,COLS,然後寫一個新行:

if (c + 1 == COLS) Console.WriteLine(); 

另一種方式是所有的C後打印一個新行印刷柱:

for (int r = 0; r < numbers.GetLength(0); ++r) 
{ 
    for (int c = 0; c < numbers.GetLength(1); ++c) 
    { 
     Console.Write("{0,6} ", numbers[r, c]); 
    } 
    Console.WriteLine(); 
} 
0

這是因爲你的下一行:

if (c%5 == 0) Console.WriteLine(); 

注意,第一輸出,R = 0,C = 0,所以它打印一個新行