Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 14.05.2018
Сообщений: 15
1

Сортировка методом прямого выбора

20.05.2018, 11:39. Просмотров 545. Ответов 1

Есть массив структур, который нужно в отдельности отсортировать методом прямого выбора по всем полям. С полями типа int вообще никаких проблем и вопросов, но как сортировать чаровские поля? может есть какая-то функция или еще что?Массив статический, структура выглядит так
C++
1
2
3
4
5
6
7
struct HOTEL
{
    char name[32];
    char city[32];
    int price;
    int stars;
};
Добавлено через 4 часа 4 минуты
нашел где-то, что они сортируются так же, как и обычные числа, потому что у них есть коды. Но я делаю так, и ничего не работает, элементы остаются в прежнем порядке, хотя этот же алгоритм прекрасно сортирует массив структур по интовским полям.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        for(int i=0;i<KOL-1;++i)
                {
                    int min=i;
                    for(int c=i+1; c<KOL; ++c)
                    {
                        if(ARR[c].name<ARR[min].name)
                        min=c;
                    }
                    swap(ARR[i],ARR[min]);
                }
                         for(int i=0;i<KOL;i++)
             {
                cout<<setw(3)<<i+1<<"|"<<setw(13)<<ARR[i].name<<"|"<<setw(13)<<ARR[i].city<<"|"<<setw(15)<<ARR[i].price<<"|"<<setw(10)<<ARR[i].stars<<endl;    
                inFile<<ARR[i].name<<" "<<ARR[i].city<<" "<<ARR[i].price<<" "<<ARR[i].stars<<endl;
             }
                            inFile.close();
                            cout<<"\nИзменения были сохранены в файл NEW.txt"<<endl<<endl;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2018, 11:39
Ответы с готовыми решениями:

Сортировка методом прямого выбора
Есть двумерный массив nxn, заполненный рандомными числами. Отсортировать его методом прямого...

Сортировка методом прямого выбора
Помогите пожалуйста! Есть код, но в конце сортировка сбивается. есть массив: A={1, 6, 9, 7, 2, 0,...

Сортировка массива методом прямого выбора
Объясните пожалуйста как работает эта программа. Задание: Массив из 5 целых чисел заполнить с...

Сортировка массива слов методом прямого выбора
Помогите пожалуйста сделать сортировку массива слов методом прямого выбора. То есть у меня есть...

1
Модератор
Эксперт С++
9788 / 8352 / 5087
Регистрация: 18.12.2011
Сообщений: 22,326
20.05.2018, 11:47 2
Цитата Сообщение от Manuka Посмотреть сообщение
if(ARR[c].name<ARR[min].name)
Это сравнение указателей, а не строк
надо
C++
1
if( strcmp(ARR[c].name,ARR[min].name)==-1 )
или переделайте char массивы на string.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2018, 11:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сортировка чисел методом прямого выбора и пузырька
Надо отсортировать цисла массива с рандомом что бы положительное число росло, а отрицательное число...

Можно ли как-то упрости этот код ? (Сортировка по убыванию методом прямого выбора)
как-то сделать так что была обычная функция void main Чтоб было понятно что такое : 1)(int...

Сортировка (метод прямого выбора)
Народ, подскажите почему неправильно считает количество перестановок М? Уже час голову...

Сортировка выбором (метод прямого выбора). Ошибка в задаче
Привет. У меня есть программка решение на задачку &quot;Первые десять элементов массива М(30)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.