2011-10-05 142 views
0

誰能告訴我爲什麼這是以1維陣列而不是2維打印?沒關係我是個白癡。打印爲1維陣列而不是2維陣列

int colls = 5; 
    int rows = 4; 
    int array[rows][colls]; 

    for (int x=0; x < rows; x++) 
    { 
     for (int g=0; g < colls; g++) 
     { 

      array[x][g]=0; 
      cout <<array[x][g]; 

     } 

    } 
+1

爲什麼不應該這樣? (即你的代碼的哪部分嘗試將其打印爲2d數組?) – Mat

回答

0

首先你的數組尺寸必須是「const」。其次,你需要在內部循環結尾處有一個endline。

0

嘗試

for (int x=0; x < rows; x++) 
    { 
     for (int g=0; g < colls; g++) 
     { 

      array[x][g]=0; 
      cout <<array[x][g]; 

     } 
     cout << endl; 

    } 
0

因爲你不每一行後打印一個新行:

int colls = 5; 
int rows = 4; 
int array[rows][colls]; 

for (int x=0; x < rows; x++) 
{ 
    for (int g=0; g < colls; g++) 
    { 

     array[x][g]=0; 
     cout <<array[x][g]; 

    } 

    cout << endl; 
} 
0

因爲你不是打印行的所有元素後,打印換行符。

試試這個:

for (int x=0; x < rows; x++) 
{ 
    for (int g=0; g < colls; g++) 
    { 
     array[x][g]=0; 
     cout <<array[x][g]; 
    } 
    cout << endl; //prints newline 
} 

順便說一句,好像你已經在你的代碼編寫using namespace std。這將名稱空間std中的所有名稱都帶到當前命名空間中,這被認爲是一種很好的做法。因此,我建議你刪除這一行(如果你已經寫了這一點):

using namespace std; //remove this line from your code. 

然後用std::cout代替cout,並且std::endl而不是endl

同樣,使用std::與名稱空間std中的所有其他名稱。

0

我想你想在每行之後打印endl,這將在colls循環之後,即在每個循環的rows循環之後。