Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2020, 17:24   #1
Newbie16
 
Регистрация: 11.12.2020
Сообщений: 6
По умолчанию Работа с массивом структур(C/C++)

Здравствуйте, мне нужна помощь в работе с массивом структур. Нужно описать массив записей, содержащий анкетные данные (ФИО, дату рождения, пол, место рождения) нескольких человек и предусмотреть выдачу сведений по определенной дате рождения. Для этого нужно запросить число человек, ввести все данные для них, потом вывести их в виде таблицы. Затем нужно запросить дату рождения, и вывести таблицу еще раз, но уже только для тех, у кого дата рождения совпала с введенной. Первая проблема состоит в том, что моя таблица выводится неровно, хотя на этапе создания таблица составлена правильно. Вторая проблема - сравнить строки и вывести корректно людей в таблице, которые подходят, в моем случае по дате рождения. Возможно, что я неправильно вывожу строки таблицы.
Код:
#include <stdio.h>
#include <windows.h>
 
#define Nmax 10
main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    struct anketa //структура анкета
    {
        
        
        struct
        {
            char pol[3]; // пол         
            struct
            {
                char secname[15]; // фамилия
                char name[15]; // имя
                char patron[15]; // отчество
            }fio;
            struct
            {
                char place[15]; //место рождения
                char dmy[10]; // день,месяц,год рождения
            }birth;
        
        }information;
        
    } Summary [Nmax]; //массив структур
    
    int i;          //параметр цикла
    int n;          //число анкет
    
        
    
    printf("Введите кол-во анкет <=10\n");
    scanf("%d",&n);
    
    //ввод информации 
    for (i=0; i<n; i++)
    {
        printf("Введите данные о %d-й анкете:\n",i+1);
        printf("ФИО:\n");
        printf("Фамилия: ");
        scanf("%s",Summary[i].information.fio.secname);
        printf("Имя: ");
        scanf("%s",Summary[i].information.fio.name);
        printf("Отчество: ");
        scanf("%s",Summary[i].information.fio.patron);
        printf("Пол(муж/жен):\n");
        scanf("%s",Summary[i].information.pol);
        printf("Дата рождения:\n");
        scanf("%s",Summary[i].information.birth.dmy);
        printf("Место рождения:\n");
        scanf("%s",Summary[i].information.birth.place);
        
    }
    printf(" ___________________________________________________________________________________________________________________________________\n");                                                       
        printf("|                                                           Анкетные сведения                                                       |\n");
        printf("|___________________________________________________________________________________________________________________________________|\n");                                                      
        printf("|                       |                |                      |             |                        |                            |\n");
        printf("|       Фамилия         |      Имя       |        Отчество      |      Пол    |     Дата рождения      |      Место рождения        |\n");
        printf("|                       |                |                      |             |                        |                            |\n");
        printf("|_______________________|________________|______________________|_____________|________________________|____________________________|\n");
    
    //вывод строк таблицы
    for (i=0; i<n; i++)
    {
        printf("|%-20s |%13s |%21s |%10s |%21s |%-25s|\n",              
                Summary[i].information.fio.secname,
                Summary[i].information.fio.name,
                Summary[i].information.fio.patron,
                Summary[i].information.pol,
                Summary[i].information.birth.dmy,
                Summary[i].information.birth.place);
        printf("|_______________________|________________|_______________________|_____________|________________________|____________________________|\n");         
        
    }
    // дальше не знаю как
                
    
    
    return 0;
    
}
Изображения
Тип файла: jpg таблица_структуры.jpg (22.4 Кб, 0 просмотров)
Newbie16 вне форума Ответить с цитированием
Старый 11.12.2020, 19:11   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

........

Последний раз редактировалось digitalis; 11.12.2020 в 19:15. Причина: хз
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Попробовал написать программу с динамическим массивом структур данных. Программа компилируется и работает. Хотелось бы что бы более опытные товарищи оценили насколько оптимально Тимох Общие вопросы C/C++ 1 02.10.2015 14:54
Работа с массивом структур ChessMasterZ Помощь студентам 4 21.03.2013 18:05
Массив структур с массивом, bool-ом и char-ом zorg-kirill Общие вопросы C/C++ 1 16.01.2013 12:12
листинг программы с динамическим массивом структур (и создание файлов). nata_lu Помощь студентам 2 19.12.2012 12:22
Работа с массивом структур ai\ekcah^p Помощь студентам 1 26.05.2009 19:10