2011-02-24 65 views
1

我被卡在陣列練習的最後幾個問題。任何人都可以伸出援手嗎?數組問題(作業)

寫入C++語句執行下列操作:

  1. 儲存器5中的陣列的第一列中,並確保在每個隨後的列中的值是在前面的列中的值的兩倍。

  2. 每行打印數組一行。

  3. 每行打印一列一列。

我認爲這將對於問題2的工作:

for (row = 0; row < 10; row++) 
    { 
     for (col = 0; col < 20; col++) 
      cout << alpha[row][col] << " "; 

      cout << endl; 
    }  

但問題1和3我難住了。謝謝

下面是我提出你的提示後。感謝大家

3.

for (col = 0; col < 20; ++col) 
    { 
     for (row = 0; row < 20; ++row) 
      cout << alpha[row][col] << " "; 

      cout << endl; 
    }  

1.

for (row = 0; row < 10; row++) 
    alpha[row][0] = 5; 

    for (col = 1; col < 20; col++) 
     for (row = 0; row < 10; row++) 
     alpha[row][col]=alpha[row][col-1]*2; 
+2

3,想想你會怎麼做「手工」 - 所以,當你寫下列看看索引如何變化,你應該在那裏看到一個模式(提示:你只需要切換兩行你的代碼得到期望的效果。) – etarion 2011-02-24 15:55:30

+1

這些問題沒有多大意義。我們不用「列」和「行」來討論數組。詢問你的導師。我們根據元素和位置討論數組。 – wilhelmtell 2011-02-24 15:56:48

+1

@wilhelmtell:將2D數組可視化爲行和列是很常見的。更像矩陣,其中第一個索引是行,第二個是列! – Nawaz 2011-02-24 15:59:37

回答

1

對於#1,運行一個循環,從零開始,直到行數。在每次迭代中,只需將5分配給array[row][0]=5(因爲第0列是第一列)。

現在運行一個循環,從1到coloumns的數量。在裏面,爲每一行運行另一個循環。只是分配array[row][col]=array[row][col-1]*2

對於#3,只需顛倒循環的順序即可。我們遍歷所有顏色,並且對於每個顏色,我們必須迭代所有行並在其後打印換行符。

我會發布代碼,但最好自己試着理解和編寫代碼。

1

對於問題#3,只是反向循環的順序,如

for (col = 0; col < 20; col++) 
{ 
    for (row = 0; row < 10; row++) 
     cout << alpha[row][col] << " "; 
    cout << endl; 
} 

是不是很簡單?

對於問題#1,只是使用環的相同的反向順序,對每行執行此

int value = 5; 
for (col = 0; col < 20; col++) 
{ 
    for (row = 0; row < 10; row++) 
     alpha[row][col] = value; 
    value = 2 * value; 
} 
1
  1. ,插入5插入到第一列(索引0),則在循環中,從1遍歷所需的數字,以及當前列的值index = 2 *在前一列索引(即col - 1)處的值。

  2. 重新排列行,col循環。

1

好1,只需要通過5以前的山坳和多所以,當你正在經歷一個循環,它會像山坳[現在所在的位置你] = COL [上一頁POS] * 2