Ввод данных в массив структур - 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 структуры. - В конце каждой итерации цикла пользователю предлагается ввести данные для следующего элемента структуры.
- После завершения цикла все введенные данные сохраняются в массиве структур.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д