0 / 0 / 0
Регистрация: 10.05.2022
Сообщений: 3
1

Задание с объединением

10.05.2022, 21:57. Показов 770. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется список граждан в виде:
1) фамилия;
2) образование (ниже среднего, общее среднее, среднее специальное
или высшее);
3) если образование высшее - специальность и название высшего
учебного заведения; если среднее специальное – специальность; если
общее среднее - возраст сотрудника, если ниже среднего – то ничего.
Составить упорядоченный по возрасту (по возрастанию) список
сотрудников с общим средним образованием.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <locale>
#include <Windows.h>
 
int main()
{
    system("color F0");
    setlocale(LC_ALL, "RUS");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    typedef struct {
        
        char fam[20];
        char spec[20];
        int age;
        char ycheb[35];
        union {
            int obr[5];
        }ultra;
    }info[20];
    info q;
    int n, i, k, c;
 
    do
    {
        printf("Введите количество граждан n (n<20): ");
        scanf("%d", &n);
        while (getchar() != '\n');
    } while (n < 1 || n>20);
    printf("Введите информацию о %d граждан: \n", n);
    for (i = 0; i < n; i++)
    {
        printf("Введите фамилию: ");
        gets_s(q[i].fam);
        printf("\nВыберете образование для %d-го гражданина: \n1)Ниже среднего(нет образования)\n2)Общее среднее\n3)Среднее специальное\n4)Высшее\nВвод: ", i + 1);
        scanf("%d", &q[i].ultra.obr);
        while (getchar() != '\n');
        if (q[i].ultra.obr[0] == 1)
        {
            while (getchar() != '\n');
        }
 
        if (q[i].ultra.obr[0] == 2)
        {
            printf("Введите возраст гражданина: ");
            scanf("%d", &q[i].age);
            while (getchar() != '\n');
        }
 
        if (q[i].ultra.obr[0] == 3)
        {
            while (getchar() != '\n');
            printf("Введите специальность гражданина: ");
            scanf("%s", &q[i].spec);
            
        }
 
        if (q[i].ultra.obr[0] == 4)
        {
            printf("Введите специальность гражданина: ");
            scanf("%s", &q[i].spec);
            while (getchar() != '\n');
            printf("Введите учебное заведение: ");
            scanf("%s", &q[i].ycheb);
            while (getchar() != '\n');
        }
    }
    printf("Список граждан: \n");
    for (i = 0; i < n; i++)
    {
        if (q[i].ultra.obr[0] == 1)
        {
            printf("Фамилия: %s.\n", q[i].fam);
            printf("Образование: Ниже среднего.");
        }
        if (q[i].ultra.obr[0]==2)
        {
            printf("\nФамилия: %s.\n", q[i].fam);
            printf("Образование: Общее среднее.\n");
            printf("Возраст гражданина: %d\n", q[i].age);
        }
        if (q[i].ultra.obr[0]==3)
        {
            printf("\nФамилия: %s.\n", q[i].fam);
            printf("Образование: Среднее специальное.\n");
            printf("Специальность гражданина: %s\n", q[i].spec);
            
        }
        if (q[i].ultra.obr[0]==4)
        {
            printf("\nФамилия: %.\n", q[i].fam);
            printf("Образование: Высшее.\n");
            printf("Специальность гражданина: %s\n", q[i].spec);
            printf("Учебное заведение: %s\n", q[i].ycheb);
        }
    }
    /*Упорядочить по возрастанию*/
    printf("\n");
    int temp;
    for (int k = 1; k < n; i++)
    {
        for (i = 0; i < n - 1; i++)
        {
            
            if (q[i].age > q[i + 1].age)
            {
                 temp = q[i].age;
                 q[i].age = q[i + 1].age;
                 q[i + 1].age = temp;
            }
        }
    }
    for (int k = 1; k < n; i++)
    {
        for (i = 0; i < n - 1; i++)
        {
 
            if (q[i].ultra.obr[0] == 2 && q[i].age > q[i + 1].age)
            {
                printf("%s  %d", q[i].fam, q[i].age);
            }
        }
    }
    
}

Не получается сделать сортировку по возрастанию...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2022, 21:57
Ответы с готовыми решениями:

Запрос с объединением
Структура БД Описание таблиц Create

Группировка с объединением
Имеется таблица Planes. Необходимо сгруппировать по полю DetailId и MAX(PlaneDate) и вывести все...

Запрос с объединением
Мне нужно выбрать из таблицы Т_Студент тех студентов, которые имеет статус-безработный и плюс еще...

Запрос с объединением в группу
Здравствуйте, возникла ситуация, которую не могу решить Надо выдать сгруппированный отчет. К...

2
13 / 8 / 5
Регистрация: 14.04.2022
Сообщений: 63
11.05.2022, 07:47 2
Цитата Сообщение от Канеки_ Посмотреть сообщение
if (q[i].age > q[i + 1].age)
{
temp = q[i].age;
q[i].age = q[i + 1].age;
q[i + 1].age = temp;
}
Тут ты просто возраст меняешь двум разным людям, например было:
Петров30
Иванов25
стало
Петров25
Иванов30
0
0 / 0 / 0
Регистрация: 10.05.2022
Сообщений: 3
11.05.2022, 17:26  [ТС] 3
Я просто плохо понимаю сортировку, сколько пытался, всегда не получалось, я уже столько перепробовал попыток исправить, так и не получилось
0
11.05.2022, 17:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2022, 17:26
Помогаю со студенческими работами здесь

Проблема с объединением ячеек
Добрый день! При объединении ячеек (кнопкой &quot;Объединить и поместить в центре&quot;) происходит...

Чтение таблиц с объединением
Добрый вечер! Подскажите, как прочесть таблицы, в которых есть объединение по вертикали? Или как...

Представление с объединением INNER JOIN
Почему я не смог создать представление, содержащее INNER JOIN? Работаю в pgadmin 4. Покажите,...

Фильтр с объединением 3х таблиц
Подскажите пожалуйста как мне объеденить 3 таблицы при помощи join, чтобы я смог искать по дате. ...

Погите с объединением данных
Имеется таблица должностей и подразделений. Каждое подразделение содержит несколько должностей....

DataGrid с объединением столбцов
Всем привет, нужен DataGrid примерно следующего вида, с возможностью программного добавления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru