После каждой заполненной структуры запрашивать, хочет ли пользователь ввести данные - 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;
 }
...

Объяснение кода листинга программы

  1. Переменная c объявлена как символ (char c;).
  2. Затем пользователю предлагается ввести символ Continue? y - yes, n - no. с помощью функции printf().
  3. Функция getch() используется для получения ввода пользователя и сохранения его в переменную c.
  4. С помощью оператора switch проверяется значение переменной c.
  5. Если значение переменной c равно 'y', то выполняется команда continue.
  6. Если значение переменной c равно 'n', то выполняется команда break.
  7. Если значение переменной c не равно 'y' или 'n', то выполняется команда goto re, которая возвращает пользователя к шагу 2.
  8. Код продолжается до тех пор, пока пользователь не введет 'n'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы