Описать структуру с именем ZNAK - C (СИ) (74675)
Формулировка задачи:
Описать структуру с именем ZNAK, содержащую следующие поля:
• фамилия, имя;
• знак зодиака;
• дата рождения (массив из трёх чисел).
Задание на поиск: найти информацию о людях, родившихся под знаком, название которого введено с клавиатуры.
Прошу помочь с программой, заранее спасибо!
Решение задачи: «Описать структуру с именем ZNAK»
textual
Листинг программы
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- enum {
- MAX_SIZE_STR = 20
- };
- typedef enum Zodiac{
- ARIES, // овен
- TAURUS, // телец
- GEMINI, // близнецы
- CANCER, // рак
- LEO, // лев
- VIRGO, // дева
- LIBRA, // весы
- SCORPIO, // скорпион
- SAGITTARIUS, // стрелец
- CAPRICORN, // козерог
- AQUARIUS, // водолей
- PISCES // рыбы
- }Zodiac;
- typedef struct Person{
- char fn[MAX_SIZE_STR];
- char ln[MAX_SIZE_STR];
- Zodiac zdc;
- unsigned bday[3];
- }Person;
- int main(void){
- const char *strzs[] = { "овен",
- "телец",
- "близнецы",
- "рак",
- "лев",
- "дева",
- "весы",
- "скорпион",
- "стрелец",
- "козерог",
- "водолей",
- "рыбы" };
- const int size_strzs = sizeof(strzs) / sizeof(char*);
- Person p[] = { {"Vasya", "Sidorow", VIRGO, {10, 5, 1980}},
- {"Sasha", "Galkin", TAURUS, { 1, 5, 1970}},
- {"Vanya", "Utkin", TAURUS, { 3, 7, 1995}} }; // и т. д.
- char strz[MAX_SIZE_STR] = "телец";
- int z = 0;
- for (; (z < size_strzs) && strcmp(strz, strzs[z]); ++z);
- if (z < size_strzs){
- for (int i = 0; i < sizeof(p) / sizeof(Person); ++i){
- if (p[i].zdc == z){
- printf("%s %s %s %d/%d/%d\n", p[i].fn, p[i].ln, strzs[z],
- p[i].bday[0], p[i].bday[1], p[i].bday[2]);
- }
- }
- }else printf("Некорректный зодиак\n");
- return EXIT_SUCCESS;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д