После каждой заполненной структуры запрашивать, хочет ли пользователь ввести данные - C (СИ)
Формулировка задачи:
Подскажите пожалуйста, у меня есть некая функция введения данных в массив структур, заполнить можно до 10 элементов массива(до 10 структур). В общем, проблема в том, чтобы после каждой заполненной структуры запрашивать, хочет ли пользователь ввести данные в еще одну структуру, если нет, то заполнение заканчивается. как это можно организовать?
Вот фрагмент программы
void fill_struct_mas(AEROFLOT *mas)
{
int i=1
flushall();
printf("Рейс #%i:\n",i);
printf("Введите направление: ");
gets((mas+i)->destination);
flushall();
printf("Введите номер рейса: ");
(mas+i)->flight_num=outism();
flushall();
printf("Введите тип самолета: ");
gets((mas+i)->plane_type);
flushall();
printf("Введите общее количество мест в самолете: ");
(mas+i)->all_places=outism();
flushall();
printf("Введите количество занятых мест в самолете: ");
(mas+i)->booked_places=outism();
if ( (mas+i)->booked_places > (mas+i)->all_places)
{
int ans=1;
while (ans==1)
{
printf("Неверное число занятых мест\n(Должно быть не более, чем общее количество мест)\nВведите число еще раз!\n");
flushall();
(mas+i)->booked_places=outism();
if ((mas+i)->booked_places < (mas+i)->all_places)
{
ans=0;
}
}
}
}
}Решение задачи: «После каждой заполненной структуры запрашивать, хочет ли пользователь ввести данные»
textual
Листинг программы
char c;
...
printf("Continue? y - yes, n - no.")
re: c=getch();
switch(c) {
case 'y': continue;
case 'n': break;
default: goto re;
}
...
Объяснение кода листинга программы
- Переменная
cобъявлена как символ (char c;). - Затем пользователю предлагается ввести символ
Continue? y - yes, n - no.с помощью функции printf(). - Функция getch() используется для получения ввода пользователя и сохранения его в переменную
c. - С помощью оператора switch проверяется значение переменной
c. - Если значение переменной
cравно 'y', то выполняется команда continue. - Если значение переменной
cравно 'n', то выполняется команда break. - Если значение переменной
cне равно 'y' или 'n', то выполняется команда goto re, которая возвращает пользователя к шагу 2. - Код продолжается до тех пор, пока пользователь не введет 'n'.