Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 10
1

Отсортировать массив структур по одному полю

22.12.2019, 17:39. Показов 4123. Ответов 3

Author24 — интернет-сервис помощи студентам
Само задание: "Учитывая информацию из лицензий, выданных на приобретение оружия для охоты: Ф.И.О., дата выдачи лицензии, тип оружия, его стоимость, необходимо вывести на экран всю информацию, отсортированную по убыванию стоимости оружия".

Сортировка одним из методов: прямого обмена (метод пузырька), прямого выбора, прямыми включениями.

Что-то похожее на начало кода:

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
#include<iostream>
using namespace std;
 
int main()
{
const int n=3;
    
struct soft {
          char fio [20];
          char data [10];
          char tip [15];
          int stoimost;
    
             };
             
soft lic[n];
int i;
 
for(i=0;i<n;i++)
    {
 cout<<"Введите Ф.И.О: ";
     cin>>lic[i].fio;
 cout<<"Введите дату выдачи лицензии: ";
     cin>>lic[i].data;
 cout<<"Введите тип оружия: ";
     cin>>lic[i].tip;
 cout<<"Введите стоимость оружия: ";
     cin>>lic[i].stoimost;
    }
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2019, 17:39
Ответы с готовыми решениями:

Отсортировать массив структур по заданному полю
std::sort(line.begin(), line.end(), (const data &amp;A, const data &amp;B)-&gt;bool {return A.all_place &lt;...

Отсортировать массив структур по заданному полю
Подскажите пожалуйста как отсортировать массив структур по полю (РОСТА студента) и после этого...

Отсортировать массив из структур по одному из полей структуры любым способом
Отсортировать массив из структур по одному из полей структуры любым способом.

Отсортировать массив структур типа "Znak" по заданному полю
Вот что есть, помогите дальше... Я Ввожу знак зодиака и у меня должно сортировать в том порядке в...

3
 Аватар для nyaka_wai
85 / 34 / 20
Регистрация: 15.12.2019
Сообщений: 88
22.12.2019, 17:49 2
Сортировка методом прямого выбора:
C++
1
2
3
4
5
6
7
8
9
10
11
12
 
void sortVib(soft lic[], int counter) //функция сортировки выбором
{
    soft pivot; int i, j;
    for (i = 1; i < counter; i++)
    {
        pivot = lic[i];
        for (j = i - 1; j >= 0 && (lic[j].sredball > pivot.sredball); j--)
            lic[j + 1] = lic[j];
        lic[j + 1] = pivot;
    }
}
Сортировка QuickSort:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void sortQuick(soft lic[], int left, int right) //функция сортировки QuickSort (рекурсивная)
{
    int i = left, j = right;
    STUDENT pivot = lic[(left + right) / 2];
    while (i <= j)
    {
        while (lic[i].sredball > pivot.sredball) i++;
        while (lic[j].sredball < pivot.sredball) j--;
        if (i <= j)
        {
            swap(lic[i], lic[j]);
            i++; j--;
        }
    }
    if (left < j) sortQuick(lic, left, j);
    if (i < right) sortQuick(lic, i, right);
}
Пример вызова:
C++
1
2
sortVib(lic,n);
sortQuick(lic,0,n-1);
0
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 10
22.12.2019, 19:59  [ТС] 3
Как добавить сортировку (методом прямого выбора) в программу, куда её впихнуть и как вывести результат после сортировки?
0
 Аватар для nyaka_wai
85 / 34 / 20
Регистрация: 15.12.2019
Сообщений: 88
22.12.2019, 20:25 4
Лучший ответ Сообщение было отмечено Houston1337 как решение

Решение

Ну вы прям ленитесь
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
#include<iostream>
using namespace std;
 
struct soft {
    char fio[20];
    char data[10];
    char tip[15];
    int stoimost;
 
};
 
void sortVib(soft[], int);
 
int main()
{
    setlocale(LC_CTYPE, "rus");
    const int n = 3;
 
 
    soft lic[n];
    int i;
 
    for (i = 0; i < n; i++)
    {
        cout << "Введите Ф.И.О: ";
        cin >> lic[i].fio;
        cout << "Введите дату выдачи лицензии: ";
        cin >> lic[i].data;
        cout << "Введите тип оружия: ";
        cin >> lic[i].tip;
        cout << "Введите стоимость оружия: ";
        cin >> lic[i].stoimost;
    }
 
    sortVib(lic, n);
 
    cout << "\nФ.И.О.\t\tДата\tТип\tCтоимость\n" << "-----------------------------------------------\n";
    for (i = 0; i < n; i++)
        cout << lic[i].fio << "\t\t" << lic[i].data << "\t" << lic[i].tip << "\t" << lic[i].stoimost << "\n";
}
 
void sortVib(soft lic[], int counter) //функция сортировки выбором
{
    soft pivot; int i, j;
    for (i = 1; i < counter; i++)
    {
        pivot = lic[i];
        for (j = i - 1; j >= 0 && (lic[j].stoimost < pivot.stoimost); j--)
            lic[j + 1] = lic[j];
        lic[j + 1] = pivot;
    }
}
1
22.12.2019, 20:25
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.12.2019, 20:25
Помогаю со студенческими работами здесь

Сортировка массива структур по одному полю
Приветствую. Есть задача, практически аналогичная моей:...

Сортировка массива структур по одному полю
Приветствую. Задача: отсортировать по возрастанию структуру по одному полю. Вчера поднимал тему:...

Сортировка массива(вектора)структур по одному полю
Код:#include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; struct...

В файле имеются 14 записей с полями. В начале отсортировать их по одному полю, потом по другому
Имеется файл, в котором есть поля: №(номер), ФИО, дата рождения, место работы, стаж. Подскажите,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
[golang] 80. Remove Duplicates from Sorted Array II
alhaos 28.01.2025
В предоставленном упорядоченном по возрастанию целочисленном слайсе, оставить уникальные элементы полюс один возможный дубликат. Вернуть количество таких элементов. / / . . .
Что такое внедрение зависимостей и для чего оно применяется
bytestream 27.01.2025
В современной разработке программного обеспечения одной из ключевых проблем является управление зависимостями между различными компонентами системы. Внедрение зависимостей (Dependency Injection, DI). . .
Как установить cellpadding и cellspacing в CSS
bytestream 27.01.2025
При создании веб-страниц с табличными данными разработчики часто сталкиваются с необходимостью правильного оформления внутренних и внешних отступов в таблицах. В традиционной разметке HTML для этих. . .
Чем отличаются public, protected, package-private и private в Java
bytestream 27.01.2025
В языке программирования Java механизм модификаторов доступа играет ключевую роль в реализации одного из фундаментальных принципов объектно-ориентированного программирования - инкапсуляции. . . .
Зачем нужно explicit в C++. Преобразование типов
bytestream 27.01.2025
В мире программирования на C++ управление преобразованием типов данных играет crucial роль в создании надежного и безопасного кода. Язык C++ предоставляет множество механизмов для контроля над. . .
Как создать удалённую (remote) ветку в Git
bytestream 27.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления кодовой базой. Одним из ключевых. . .
Как создать утечку памяти в Java
bytestream 27.01.2025
Утечка памяти в Java представляет собой ситуацию, когда программа неэффективно использует доступную память, удерживая ссылки на объекты, которые больше не нужны для работы приложения. Несмотря на. . .
КуМир: как решать задачи на числа
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой уникальную образовательную среду программирования, разработанную специально для обучения основам алгоритмизации и программирования. Эта система. . .
Исполнитель Черепаха в КуМир: как решать задачи
bytestream 27.01.2025
Исполнитель Черепаха в системе КуМир представляет собой мощный образовательный инструмент, который помогает освоить основы программирования через визуальное представление результатов выполнения. . .
КуМир: как решать задачи на массивы
bytestream 27.01.2025
Массивы представляют собой важнейшую структуру данных в программировании, и система КуМир предоставляет удобные инструменты для работы с ними. В контексте КуМир массив можно представить как. . .
[golang] 26. Remove Duplicates from Sorted Array
alhaos 27.01.2025
Необходимо удалить дубликаты из предоставленного целочисленного отсортированного по взрастанию слайса, нужно изменить значения в слайсе и вернуть количество элементов. / / . . .
КуМир, исполнитель Робот. Решение задач
bytestream 27.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения программированию, которая была создана в Отделении информатики Российской Академии наук. Эта система разработана. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru