配列の数を 2 回変更しようとしていますが、[5][4] 配列内で 2 回だけ変更しようとしています。
つまり、最初の 2 つの要素だけを = 0 から =1 に変更して、ループを終了するとします。したがって、要素[0] = 1、[1] = 1、次に[2] = 0、[3] = 0です。次に、変更要素[2]と[3]を1に追加しますが、要素[0]は残しますand [1] = 1. (これは 1 次元配列の単なる例です)。
これは 5 行 2 列でしか機能しませんが、ループでこれを行うにはどうすればよいですか? たとえば、[30][6] 配列がある場合、これは明らかに効率的ではありません。forループでこれを理解しようとしましたが、うまくいく方法を思いつくことができません。
int numPassengers = 2;
int count = 0;
while (count < numPassengers){
if(array[0][1] == 0){
array[0][1] = 1;
count++;
}
else if(array[1][1] == 0){
array[1][1] = 1;
count++;
}
else if(array[2][1] == 0){
array[2][1] = 1;
count++;
}
else if(array[3][1] == 0){
array[3][1] = 1;
count++;
}
else if(array[4][1] == 0){
array[4][1] = 1;
count++;
}
}
コードを少し変更しました。
for(int i = 0; i < ROW; i++){
for(int j = 1; j <= 2 ; j++){
if( array[i][j] == 0){
if(count < numPassengers){
array[i][j]++;
count++;
}
}
}
}