Вывод в консоль ФИО и возраст людей по дате рождения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Нужно ввести в диалоговом режиме ФИО 5 людей и даты их рождения, после вывести в консоль в виде таблицы ФИО и возраст(!) этих людей. Я в программировании мало чего понимаю, пока только учусь, прошу помощи. Немного накидал код, но не уверен в его правильности, и не знаю что делать дальше.
#include <stdio.h>
 
int main()
{
    int vozrast;
    char f[20],i[20],o[20],f1[20],i1[20],o1[20],f2[20],i2[20],o2[20],f3[20],i3[20],o3[20],f4[20],i4[20],o4[20];
    
    printf("Введите фамилию: ");
    scanf("%s", f,f1,f2,f3,f4);
    printf("Введите имя: ");
    scanf("%s", i,i1,i2,i3,i4);
    printf("Введите отчество: ");
    scanf("%s", o,o1,o2,o3,o4);
    printf("Введите дату рождения: ");

Решение задачи: «Вывод в консоль ФИО и возраст людей по дате рождения»

textual
Листинг программы
int main()
{
    //Структура данных по человеку
    struct person{
        char name[20];
        char surname[20];
        char lastname[20];
        int age;
        int birthdate;
        int birthmonth;
        int birthyear;
    } man1, man2, man3, man4, man5;
 
    //Текущая дата (для вычисления возраста)
    struct currentDate{
        int day;
        int month;
        int year;
    } c_date;
    
    printf("Введите текущую дату(в формате дд.мм.гг): ");
    scanf("%d.%d.%d", &c_date.day, &c_date.month, &c_date.year);
    
    //Ввод данных первого человека
    printf("Введите фамилию: ");
    scanf("%s", man1.surname);
    printf("Введите имя: ");
    scanf("%s", man1.name);
    printf("Введите отчество: ");
    scanf("%s", man1.lastname);
    printf("Введите дату рождения(в формате дд.мм.гг): ");
    scanf("%d.%d.%d", &man1.birthdate, &man1.birthmonth, &man1.birthyear);
    
    //Ввод данных второго человека
    printf("Введите фамилию: ");
    scanf("%s", man2.surname);
    printf("Введите имя: ");
    scanf("%s", man2.name);
    printf("Введите отчество: ");
    scanf("%s", man2.lastname);
    printf("Введите дату рождения(в формате дд.мм.гг): ");
    scanf("%d.%d.%d", &man2.birthdate, &man2.birthmonth, &man2.birthyear);
 
    //Ввод данных третьего человека
    printf("Введите фамилию: ");
    scanf("%s", man3.surname);
    printf("Введите имя: ");
    scanf("%s", man3.name);
    printf("Введите отчество: ");
    scanf("%s", man3.lastname);
    printf("Введите дату рождения(в формате дд.мм.гг): ");
    scanf("%d.%d.%d", &man3.birthdate, &man3.birthmonth, &man3.birthyear);
    
    //Ввод данных четвертого человека
    printf("Введите фамилию: ");
    scanf("%s", man4.surname);
    printf("Введите имя: ");
    scanf("%s", man4.name);
    printf("Введите отчество: ");
    scanf("%s", man4.lastname);
    printf("Введите дату рождения(в формате дд.мм.гг): ");
    scanf("%d.%d.%d", &man4.birthdate, &man4.birthmonth, &man4.birthyear);
 
    //Ввод данных пятого человека
    printf("Введите фамилию: ");
    scanf("%s", man5.surname);
    printf("Введите имя: ");
    scanf("%s", man5.name);
    printf("Введите отчество: ");
    scanf("%s", man5.lastname);
    printf("Введите дату рождения(в формате дд.мм.гг): ");
    scanf("%d.%d.%d", &man5.birthdate, &man5.birthmonth, &man5.birthyear);
 
    
    //Вычисление возраста
    man1.age = c_date.year - man1.birthyear;
    man2.age = c_date.year - man2.birthyear;
    man3.age = c_date.year - man3.birthyear;
    man4.age = c_date.year - man4.birthyear;
    man5.age = c_date.year - man5.birthyear;
    
    //Проверка текущего месяца и месяца рождения    
    if(c_date.month < man1.birthmonth) man1.age = man1.age - 1;
    if(c_date.month < man2.birthmonth) man2.age = man2.age - 1;
    if(c_date.month < man3.birthmonth) man3.age = man3.age - 1;
    if(c_date.month < man4.birthmonth) man4.age = man4.age - 1;
    if(c_date.month < man5.birthmonth) man5.age = man5.age - 1;
    
    //проверка даты рождения если текущий месяц и месяц рождения совпадают
    if(c_date.month == man1.birthmonth && c_date.day < man1.birthdate)  man1.age = man1.age - 1;
    if(c_date.month == man2.birthmonth && c_date.day < man2.birthdate) man2.age = man2.age - 1;
    if(c_date.month == man3.birthmonth && c_date.day < man3.birthdate) man3.age = man3.age - 1;
    if(c_date.month == man4.birthmonth && c_date.day < man4.birthdate) man4.age = man4.age - 1;
    if(c_date.month == man5.birthmonth && c_date.day < man5.birthdate) man5.age = man5.age - 1;
    
    
    //Вывод данных
    printf("\n");
    printf("%s %s %s %d", man1.surname, man1.name, man1.lastname, man1.age);
    printf("%s %s %s %d", man2.surname, man2.name, man2.lastname, man2.age);
    printf("%s %s %s %d", man3.surname, man3.name, man3.lastname, man3.age);
    printf("%s %s %s %d", man4.surname, man4.name, man4.lastname, man4.age);
    printf("%s %s %s %d", man5.surname, man5.name, man5.lastname, man5.age);
 
    return 0;
}

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


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

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

9   голосов , оценка 4.222 из 5
Похожие ответы