Форум программистов, компьютерный форум CyberForum.ru

Отсортировать массив структур по возрастанию - C++

Восстановить пароль Регистрация
 
tasik
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 52
16.10.2013, 21:58     Отсортировать массив структур по возрастанию #1
Дана структура нужно отсортировать масив структур за вторим полем. struct AEROFLOT Flight[7];
C++
1
2
3
4
5
struct AEROFLOT{
    char destinationInfo[100];
    unsigned int flightNumber;
    char typeOfAirplane[100];
};
Испытывал разные алгоритмы, но ничего не получаеться. Пишу на С.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2013, 21:58     Отсортировать массив структур по возрастанию
Посмотрите здесь:

отсортировать массив по возрастанию C++
[C++] отсортировать массив по возрастанию и убыванию C++
[C++] Отсортировать и вывести на экран массив структур C++
Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию C++
Отсортировать массив по возрастанию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
16.10.2013, 22:29     Отсортировать массив структур по возрастанию #2
tasik, может приведете код того что испытывали? будет проще подкорректировать
tasik
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 52
16.10.2013, 23:01  [ТС]     Отсортировать массив структур по возрастанию #3
Не обижайтесь, я просто только начал програмировать и не очень сильно разбираюсь.

C
1
2
3
4
5
6
7
8
9
10
11
12
void insertSort(AEROFLOT* a, int size) 
{
    int i, j ;
    struct AEROFLOT tmp;
    for (i = 1; i < size; ++i) // öèêë ïðîõîäîâ, i - Г*îìåð ïðîõîäГ*
    {
        tmp = a[i]; 
        for (j = i - 1; j >= 0 && a[j] > tmp; --j) // ïîèñê ìåñòГ* ýëåìåГ*ГІГ* Гў ãîòîâîé ïîñëåäîâГ*òåëüГ*îñòè 
            a[j + 1] = a[j];    // ñäâèãГ*ГҐГ¬ ýëåìåГ*ГІ Г*Г*ГЇГ°Г*ГўГ®, ïîêГ* Г*ГҐ äîøëè
        a[j + 1] = tmp; // ìåñòî Г*Г*éäåГ*Г®, ГўГ±ГІГ*ГўГЁГІГј ýëåìåГ*ГІ    
    }
}
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
16.10.2013, 23:05     Отсортировать массив структур по возрастанию #4
Цитата Сообщение от tasik Посмотреть сообщение
C
1
    struct AEROFLOT tmp;
должно быть так по идее
C++
1
AEROFLOT tmp;
хотя может в C по другому было
tasik
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 52
16.10.2013, 23:13  [ТС]     Отсортировать массив структур по возрастанию #5
Цитата Сообщение от newb_programmer Посмотреть сообщение
должно быть так по идее
C++
1
AEROFLOT tmp;
хотя может в C по другому было

C++
1
AEROFLOT tmp;
- это в с++, а у С struct AEROFLOT tmp;
newb_programmer
 Аватар для newb_programmer
237 / 237 / 19
Регистрация: 03.09.2011
Сообщений: 553
16.10.2013, 23:15     Отсортировать массив структур по возрастанию #6
tasik, тогда вот
C++
1
 for (j = i - 1; j >= 0 && a[j] > tmp; --j)
вы должны сравнивать не структуры, а поля!
C++
1
a[j].flightNumber > tmp.flightNumber
Yandex
Объявления
16.10.2013, 23:15     Отсортировать массив структур по возрастанию
Ответ Создать тему
Опции темы

Текущее время: 16:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru