好吧,我很好地填充了二維數組...現在我需要保持隨機生成的二維數組中相同的值,但是顛倒垂直的順序(第二個循環)。所以基本上第二個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:你試過更新的答案了嗎?任何問題? –