Ввод данных в массив структур - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Подскажите пожалуйста как решить проблему - ввод данных в первый элемент структуры производится только для 1 структуры в массиве, в последующих циклах это пропускается и предлагается сразу ввод во вторую строку. В чем может быть проблема?
Листинг программы
  1. for (int i = 0; i<n; i++)
  2. {
  3. puts("Enter name: ");
  4. gets_s(book[i].NAME);
  5. _flushall();
  6. puts("Enter zodiac: ");
  7. gets_s(book[i].ZODIAC);
  8. puts("Enter date of birth: ");
  9. scanf_s("%d %d %d", &book[i].BDAY[0], &book[i].BDAY[1], &book[i].BDAY[2]);
  10. };
Сама структура
Листинг программы
  1. struct znak
  2. {
  3. char NAME[10];
  4. char ZODIAC[15];
  5. int BDAY[3];
  6. } book[n];

Решение задачи: «Ввод данных в массив структур»

textual
Листинг программы
  1. for (int i = 0; i<n; i++)
  2. {
  3. puts("Enter name: ");
  4. scanf("%s", book[i].NAME);
  5. _flushall();
  6. puts("Enter zodiac: ");
  7. scanf("%s", book[i].ZODIAC);
  8. puts("Enter date of birth: ");
  9. scanf_s("%d %d %d", &book[i].BDAY[0], &book[i].BDAY[1], &book[i].BDAY[2]);
  10. };

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

  1. Ввод данных в массив структур.
  2. Используется цикл for для прохода по всем элементам массива.
  3. В каждой итерации цикла пользователю предлагается ввести данные для каждого поля структуры.
  4. Для ввода имени используется функция scanf с форматом %s, которая считывает строку символов и сохраняет ее в поле NAME структуры.
  5. Для ввода знака зодиака также используется функция scanf с форматом %s, которая считывает строку символов и сохраняет ее в поле ZODIAC структуры.
  6. Для ввода даты рождения используется функция scanf_s с форматом %d %d %d, которая считывает три целых числа и сохраняет их в поле BDAY структуры.
  7. В конце каждой итерации цикла пользователю предлагается ввести данные для следующего элемента структуры.
  8. После завершения цикла все введенные данные сохраняются в массиве структур.

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


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

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

7   голосов , оценка 4.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы