Описать структуру с именем 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д