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

сортировка c++

30.04.2020, 14:59. Показов 1083. Ответов 5

Author24 — интернет-сервис помощи студентам
пытаюсь написать сортировку(возрастание) не работает...... если нужно. скину весь код
помогите(

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void sort(aeroflot*a, int const& g)
{
    AEROFLOT* x;
    for (int i = 0; i < g - 1; i++)
 
        for (int j = 0; j < g - i - 1; j++)
        {
            if (a[j].flight > a[j + 1].flight)
            {
                x = a[j];
                a[j] = a[j + 1];
                a[j + 1] = x;
            }
        }
}
не существует подходящей функции преобразования из "AEROFLOT" в "AEROFLOT*"


отсутствует оператор "=", соответствующий этим операндам
типы операндов: AEROFLOT = AEROFLOT*
структура
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2020, 14:59
Ответы с готовыми решениями:

Сортировка Шелла. Написал программу, не могу понять, почему сортировка не выполняется
Программа создает динамический массив с рандомным заполнением. Дальше выбор сортировок, пузырьком...

Сортировка слиянием. В каком куске кода происходит сортировка и каким именно образом?
Помогите, пожалуйста, разобраться. Подскажите в каком куске кода происходит сортировка и каким...

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным...

Быстрая сортировка (сортировка Хоара) для связных списков
есть у кого готовый алгоритм? или подскажите как реализовать

5
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
30.04.2020, 15:27 2
попробуйте так:
C++
1
2
3
4
5
6
void sort(aeroflot *a, int g)
{
    for (int i = 0; i < g - 1; i++)
        for (int j = 0; j < g - i - 1; j++)
            if (a[j].flight > a[j+1].flight) swap(a[j],a[j+1]);
}
0
0 / 0 / 0
Регистрация: 16.01.2020
Сообщений: 7
30.04.2020, 15:39  [ТС] 3
Цитата Сообщение от Yetty Посмотреть сообщение
попробуйте так:
C++
1
2
3
4
5
6
void sort(aeroflot *a, int g)
{
    for (int i = 0; i < g - 1; i++)
        for (int j = 0; j < g - i - 1; j++)
            if (a[j].flight > a[j+1].flight) swap(a[j],a[j+1]);
}
не получается.. вот код сам
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
#include<iostream>
#include<string>
#include<ctime>
#include<fstream>
using namespace std;
ofstream fout;
struct AEROFLOT
{
    string point;
    int flight;
    string typeairplane;
 
};
void add_from(AEROFLOT* a, int& k)
{
    setlocale(LC_ALL, "rus");
    fout.open("aeroflotcompanyinfo.txt");
    for (int i(0); i < k; i++)
    {
        cout << "Добро пожаловать в компанию AEROFLOT" << endl;
        cout << "Введите пункт назначения" << endl;
        cin >> a[i].point;
        fout << endl;
        fout << a[i].point;
        cout << "Введите номер рейса" << endl;
        cin >> a[i].flight;
        fout << endl;
        fout << a[i].flight;
        cout << "Введите тип самолета:";
        cin >> a[i].typeairplane;
        fout << endl;
        fout << a[i].typeairplane;
        fout << endl;
    }
    fout.close();
}
void sortirovochka(AEROFLOT* a, int g)
{
    for (int i = 0; i < g - 1; i++)
        for (int j = 0; j < g - i - 1; j++)
            if (a[j].flight > a[j + 1].flight) swap(a[j], a[j + 1]);
}
 
 
/*void sortirovochka(AEROFLOT* a, const int&g)
{
 
    for (int i = 0; i < g - 1; i++)
        for (int j = 0; j < g - i - 1; j++)
            if (a[j].flight > a[j + 1].flight)
                swap(a[j].flight, a[j + 1].flight);
}*/
 
 
 
void sravneniye(AEROFLOT* a, int const k, string f)
{
    int n = 0;
    for (int i = 0; i < k; ++i)
    {
        if (a[i].point == f)
            cout << a[i].flight << " " << a[i].typeairplane << endl;
        else n++;
 
    }
    if (n == k)
        cout << "Таких рейсов нет" << endl;
 
 
}
int main()
{
 
    setlocale(LC_ALL, "rus");
    AEROFLOT* company;
    int q;
    cin >> q;
    string pointt;
    company = new AEROFLOT[q];
    add_from(company, q);
    sortirovochka(company, q);
    cout << "Введите ваше ФИО Латинскими символами" << endl;
    string name;
    cin >> name >> name;
    cout << "Благодарю," << name << " Пожалуйста, введите пункт назначения " << endl;
    cin >> pointt;
    sravneniye(company, q, pointt);
    return 0;
}
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
30.04.2020, 17:37 4
Tmgrishin, что именно не получается? По мне, так работает
Может, Вы забыли, что при вводе имени клиента, надо вводить два слова?
0
0 / 0 / 0
Регистрация: 16.01.2020
Сообщений: 7
30.04.2020, 17:52  [ТС] 5
в файл не выводит по возрастанию flight
0
Эксперт CЭксперт С++
5113 / 4552 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
30.04.2020, 18:05 6
Лучший ответ Сообщение было отмечено Tmgrishin как решение

Решение

Tmgrishin, ну правильно В файл выводится по мере ввода с консоли. А сортируется после того.
Надо ввести в массив структур, отсортировать, а только потом выводить в файл.

Добавлено через 10 минут
Tmgrishin, вот, подправил:
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
#include<iostream>
#include<string>
#include<ctime>
#include<fstream>
using namespace std;
ofstream fout;
struct AEROFLOT
{
    string point;
    int flight;
    string typeairplane;
 
};
void add_from(AEROFLOT* a, int& k)
{
    for (int i(0); i < k; i++)
    {
        cout << "Добро пожаловать в компанию AEROFLOT" << endl;
        cout << "Введите пункт назначения" << endl;
        cin >> a[i].point;
        cout << "Введите номер рейса" << endl;
        cin >> a[i].flight;
        cout << "Введите тип самолета:";
        cin >> a[i].typeairplane;
    }
}
 
void to_file(AEROFLOT* a, int k)
{
    fout.open("aeroflotcompanyinfo.txt");
    for (int i(0); i < k; i++)
        fout << endl << a[i].point << endl << a[i].flight << endl << a[i].typeairplane << endl;
    fout.close();
}
 
void sortirovochka(AEROFLOT* a, int g)
{
    for (int i = 0; i < g - 1; i++)
        for (int j = 0; j < g - i - 1; j++)
            if (a[j].flight > a[j + 1].flight) swap(a[j], a[j + 1]);
}
 
 
/*void sortirovochka(AEROFLOT* a, const int&g)
{
 
    for (int i = 0; i < g - 1; i++)
        for (int j = 0; j < g - i - 1; j++)
            if (a[j].flight > a[j + 1].flight)
                swap(a[j].flight, a[j + 1].flight);
}*/
 
 
 
void sravneniye(AEROFLOT* a, int const k, string f)
{
    int n = 0;
    for (int i = 0; i < k; ++i)
    {
        if (a[i].point == f)
            cout << a[i].flight << " " << a[i].typeairplane << endl;
        else n++;
 
    }
    if (n == k)
        cout << "Таких рейсов нет" << endl;
 
 
}
int main()
{
    setlocale(LC_ALL, "rus");
    AEROFLOT* company;
    int q;
    cin >> q;
    string pointt;
    company = new AEROFLOT[q];
    add_from(company, q);
    sortirovochka(company, q);
    to_file(company, q);
    cout << "Введите ваше ФИО Латинскими символами" << endl;
    string name;
    cin >> name >> name;
    cout << "Благодарю," << name << " Пожалуйста, введите пункт назначения " << endl;
    cin >> pointt;
    sravneniye(company, q, pointt);
    return 0;
}
1
30.04.2020, 18:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2020, 18:05
Помогаю со студенческими работами здесь

Сортировка Слиянием vs Быстрая Сортировка - что лучше
Народ, помогите разобраться какой из методов сортировки лучше &quot;Сортировка Слиянием&quot; или &quot;Быстрая...

Сортировка Шелла и пирамидальная сортировка для символов
Здраствуйте, можете пожалуйста привести пример сортировок шелла и пиромидальной сортировки...

Сортировка Шелла по убыванию, сортировка массива с файла
В задании нужно чтобы массив был взят из файла или сгенерирован, и упорядочен по возрастанию и...

2 сортировки: пирамидальная сортировка и сортировка слиянием
Реализовать два улучшенных алгоритма сортировки. Для каждого алгоритма вычислить показатель...

Быстрая сортировка (сортировка методом Хоара)
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке...

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара)
Вопрос, скорее академический, по мотивам реализации. Вот в faq приведена реализация этого метода...


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

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