好吧,我很好地填充了二维数组...现在我需要保持随机生成的二维数组中相同的值,但是颠倒垂直的顺序(第二个循环)。所以基本上第二个for循环需要保持相同的值,但以相反的顺序。 但我觉得如果我进入嵌套for循环和rand(),它会生成所有新的随机字母...垂直反转2d数组?
有谁知道如何去做这个? 这是我到目前为止有:
char array[20][20];
srand(time(NULL));
for(int i=0;i<20;i++)
{
for(int j=0;j<20;j++) {
array[i][j]= ((rand() % 2) == 0) ? 'O' : 'X';
cout << array[i][j];
}
cout << endl;
for(int j=20-1; i>=0; i-- {
array[i][j]= ((rand() % 2) == 0) ? 'O' : 'X';
cout << array[j][i];
}
cout << endl;
}
编辑 对于任何人谁是关于如何解决这个好奇,我想通了! 下面是代码:
char array[20][20];
srand(time(NULL));
for(int i=0;i<20;i++) {
for(int j=0;j<20;j++) {
array[i][j]= ((rand() % 2) == 0) ? 'O' : 'X';
cout << array[i][j];
}
cout << endl;
}
cout << endl;
for(int i=0;i<20;i++) {
for(int j=19;j>=0;j--) {
cout << array[i][j];
}
cout << endl;
}
我是否保持在同一个地方?因为它没有正确打印。它将它与另一个数组混合,因为它正在通过外部循环,然后在外部循环中执行BOTHER循环,并将它们一起粉碎...... – Peanut
@Peanut:我明白了。如果你保持在同一个循环中,那么它将不会打印正确的值,因为你的数组没有被完全赋值。把它移到外面。我更新了答案。 –
@Peanut:你试过更新的答案了吗?任何问题? –