2011-02-24 62 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