Объявить структуру Humen, включающую имя человека, фамилию и год рождения - C (СИ)

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

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

Объявить тип-структуру humen, включающую имя человека, фамилию и год рождения. Объявить два массива из четырёх элементов типа humen. Ввести с консоли или из файла элементы одного массива и построить на их основе другой, упорядочив эле-менты по годам рождения. Вывести результат.

Решение задачи: «Объявить структуру Humen, включающую имя человека, фамилию и год рождения»

textual
Листинг программы
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
#pragma warning(disable : 4996)
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    typedef char string[256];//Переименование массива char[256] в тип string
    string s;
    
    struct humen
    {
        char name[20]; 
        char surname[20];
        int year;
    };
    humen per1, per2, per3, per4, per5, per6;
 
    
    printf("ВВЕДИТЕ ДАННЫЕ ЧЕЛОВЕКА 1:\n");
    printf("Имя: ");
    gets(per1.name);
    printf("Фамилия: ");
    gets(per1.surname);
    printf("Год рождения: ");
    gets(s);
    per1.year = atoi(s);
    
    
    printf("\nВВЕДИТЕ ДАННЫЕ ЧЕЛОВЕКА 2:\n");
    printf("Имя: ");    
    gets(per2.name);
    printf("Фамилия: ");
    gets(per2.surname);
    printf("Год рождения: ");
    gets(s);
    per2.year = atoi(s);
    
    
    printf("\nВВЕДИТЕ ДАННЫЕ ЧЕЛОВЕКА 3:\n");
    printf("Имя: ");
    gets(per3.name);
    printf("Фамилия: ");
    gets(per3.surname);
    printf("Год рождения: ");
    gets(s);
    per3.year = atoi(s);
 
 
    printf("\nВВЕДИТЕ ДАННЫЕ ЧЕЛОВЕКА 4:\n");
    printf("Имя: ");
    gets(per4.name);
    printf("Фамилия: ");
    gets(per4.surname);
    printf("Год рождения: ");
    gets(s);
    per4.year = atoi(s);
 
 
    printf("\nВВЕДИТЕ ДАННЫЕ ЧЕЛОВЕКА 5:\n");
    printf("Имя: ");
    gets(per5.name);
    printf("Фамилия: ");
    gets(per5.surname);
    printf("Год рождения: ");
    gets(s);
    per5.year = atoi(s);
 
 
    printf("\nВВЕДИТЕ ДАННЫЕ ЧЕЛОВЕКА 6:\n");
    printf("Имя: ");
    gets(per6.name);
    printf("Фамилия: ");
    gets(per6.surname);
    printf("Год рождения: ");
    gets(s);
    per6.year = atoi(s);
 
 
    printf( "\nСобранная информация:\n");
    printf("%s %s %d\n", per1.name, per1.surname, per1.year);
    printf("%s %s %d\n", per2.name, per2.surname, per2.year);
    printf("%s %s %d\n", per3.name, per3.surname, per3.year);
    printf("%s %s %d\n", per4.name, per4.surname, per4.year);
    printf("%s %s %d\n", per5.name, per5.surname, per5.year);
    printf("%s %s %d\n", per6.name, per6.surname, per6.year);
 
 
    printf("\nСписок в порядке возрастания дат:\n");
    if (per1.year < per2.year < per1.year<per3.year < per1.year < per4.year < per5.year < per6.year)
    {
        printf("%s %s %d\n", per1.name, per1.surname, per1.year);
        if (per2.year < per3.year < per4.year < per5.year < per6.year)
        {
            printf("%s %s %d\n", per2.name, per2.surname, per2.year);
            printf("%s %s %d\n", per3.name, per3.surname, per3.year);
        }
        else
        {
            printf("%s %s %d\n", per3.name, per3.surname, per3.year);
            printf("%s %s %d\n", per2.name, per2.surname, per2.year);
        }
    }
    
    
    else if (per2.year<per1.year&&per2.year<per3.year)
    {
        {
            printf("%s %s %d\n", per2.name, per2.surname, per2.year);
        }
        if (per1.year < per3.year)
        {
            printf("%s %s %d\n", per1.name, per1.surname, per1.year);
            printf("%s %s %d\n", per3.name, per3.surname, per3.year);
        }
        else
        {
            printf("%s %s %d\n", per3.name, per3.surname, per3.year);
            printf("%s %s %d\n", per1.name, per1.surname, per1.year);
        }
    }
    else
    {
        {
            printf("%s %s %d\n", per3.name, per3.surname, per3.year);
        }
        if (per2.year<per1.year)
        {
            printf("%s %s %d\n", per2.name, per2.surname, per2.year);
            printf("%s %s %d\n", per1.name, per1.surname, per1.year);
        }
        else
        {
            printf("%s %s %d\n", per1.name, per1.surname, per1.year);
            printf("%s %s %d\n", per2.name, per2.surname, per2.year);
        }
            
    }
    
    getchar();
    return(0);
}

Объяснение кода листинга программы

В этом коде объявлена структура Humen, которая включает в себя поля name, surname и year. Затем определены пять объектов этой структуры (per1-per5), в которые пользователь вводит данные о пяти людях. Далее, в цикле, данные из каждого объекта выводятся на экран в формате Имя Фамилия Год рождения. Затем, в зависимости от года рождения, объекты упорядочиваются по возрастанию года рождения, и их данные выводятся на экран в формате Имя Фамилия Год рождения. Возможные значения переменных:

  • s - строка, содержащая год рождения, введенный пользователем.
  • per1-per6 - объекты структуры Humen, содержащие данные о людях.
  • name, surname, year - поля структуры Humen, содержащие имя, фамилию и год рождения человека соответственно.

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


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

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

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