나는 극장의 2D 배열을 만드는 프로그램을 가지고있다. 사용자는 위치별로 좌석을 선택할 수 있으며 화폐 금액은 0으로 변경되어 좌석을 가져 갔음을 나타냅니다. 좌석을 선택하는 다른 방법은 가격별로 선택합니다. 따라서 사용자가 가격을 입력하면 for 루프는 배열을 반복하고 해당 가격의 첫 번째 인스턴스를 찾아서 0으로 대체 한 다음 중지합니다. 아니면 적어도 내가하려고했던 것입니다. 실제로,이 값들은 모두 0으로 바뀌 었습니다. 조건이 충족되면 while 루프를 사용하여 닫았지만 작동하지 않았습니다. 여기에 내 (관련) 코드가 있습니다.2D 배열에서 가격으로 검색 하시겠습니까?
while (flag == true)
{
cout << "\n";
cout << "You may select tickets by seat or by price. Enter 1 to select by price, or 2 to select a seat. Enter 3 if you'd like to quit." << endl;
cin >> userSelection;
if (userSelection == 1)
{
cout << "What price would you like to search for? " << endl;
cin >> priceSelection;
while (searchFlag == true)
{
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 10; j++)
{
if (Theater [i][j] == priceSelection)
{
Theater [i][j] = 0;
searchFlag = false;
}
}
}
for (int i = 0; i < 9; i++) // This for loop is going to output our array so the user can see pricing.
{
for (int j = 0; j < 10; j++)
{
cout << Theater [i][j] << " ";
}
cout << "\n";
}
}
}
정말로 무엇이 변경되어야하는지 확실치 않아서 첫 번째 가격이 발견되고 변경된 후에 중단됩니다. 또한 필요한 경우 나머지 코드를 복사하거나 붙여 넣을 수도 있습니다.
왜이 2D (1D는 문제를 피할 수 있습니까?)입니까? –
행과 열의 좌석이 있으므로 사용자를 위해 하향식 시각적으로 표시해야합니다. – Santa
문제의 일부는 searchFlag가 for 루프 * 밖에서 만 점검된다는 것입니다. for 루프는 searchFlag를 다시 검사하기 전에 항상 완료됩니다. – aardvarkk