Описать структуру с именем 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;
}

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


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

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

14   голосов , оценка 3.929 из 5