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