你如何在2D阵列中绘制X? C ++

时间:2014-02-20 06:21:09

标签: c++ multidimensional-array

假设foo [10] [10]已经满了''这是我的代码到目前为止:

for(int q = 0; q <10; q++)
{
foo[q][q] = 'x';
}

这会从左上角到右下角绘制一条线,但我无法弄清楚如何从左下角到右上角绘制一条线而不放入另一个循环。 我知道这很简单,但我认为我错过了一些重要的逻辑。

你能用一个循环制作一个X,还是我在浪费时间?

2 个答案:

答案 0 :(得分:3)

for(int q = 0; q <10; q++)
{
    foo[q][q] = 'x';
    foo[q][10 - q - 1] = 'x';
}

10 - q - 1 = 9 - q

9是数组的最大索引。

答案 1 :(得分:0)

是的,可以使用包含多个变量的单个循环来完成。 如果i增加,则值j减小。 因此foo [j] [i]将参考

foo[9][0]   for the first iteration 
foo[8][1]   for the second iteration 
foo[7][2]   for the third iteration 
.....
till 
foo[0][9]   for the last iteration 

这使得循环沿着对角线从左下角到右上角放置'x'。

for(int q = 0 ,int j=9 ; q <10; q++,j--)
{
foo[q][q] = 'x';
foo[j][q] = 'x';
}