Задача по C++, циклы В кинотеатре есть 8 мест, 5 взрослых и 3 детских. При входе человек указывает свой возраст и бронирует билет(до 12-детский, 12+ взрослый), программа должна вывести какой номер места. Если билеты заканчиваются, программа должна вывести "мест нет".
#include <iostream>
#include <math.h>
#include <locale.h>
#include <Windows.h>
#include <conio.h>
using namespace std;
const int MaxChildren = 3;
const int MaxAdults = 5;
void main()
{
setlocale(LC_ALL, "Russian");
bool h[9] = {1,0,0,0,0,0,0,0,0};
int age, nomber;
char dir = 'a';
int children = 0, adults = 0;
ret:
age = 0;
while (age <= 5 || age >= 151)
{
system("cls");
cout << "Укажите вашь возраст(от 6 до 150): ";
cin >> age;
}
if (children >= MaxChildren && adults >= MaxAdults) {
cout << '\n' << "Мест нет.";
Sleep(1000);
system("cls");
goto kkol;
}
if (age <= 12) {
if (children >= MaxChildren) {
cout << '\n' << "Детские места закончились.";
Sleep(1000);
system("cls");
goto ret;
}
}
if (age > 12) {
if (adults >= MaxAdults) {
cout << '\n' << "Взрослые места закончились.";
Sleep(1000);
system("cls");
goto ret;
}
}
non:
cout << '\n' << "Свободные места: ";
cout << '\n' << "Детские: " << MaxChildren - children;
cout << '\n' << "Взрослые: " << MaxAdults - adults;
for (int i = 1; i < 9; i++)
{
if (h[i] == false) { cout << '\n' << i; }
}
cout << '\n' << "Выберите место (1-8): ";
cin >> nomber;
if (h[nomber] == true) {
cout << '\n' << "Место занято, возьмите другое.";
Sleep(1000);
system("cls");
goto non;
}
h[nomber] = true;
if (age > 12) { adults++; }
else { children++; }
Sleep(1000);
system("cls");
cout << "Нажмите Enter, чтобы продолжить.";
dir = _getche();
if (dir == '\r') { goto ret; }
kkol:
cout << " ";
}