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

Возникли трудности с функцией быстрой сортировки qsort - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Asdf
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 110
09.05.2012, 21:59     Возникли трудности с функцией быстрой сортировки qsort #1
Добрый вечер. Есть массив прямоугольников со своей высотой и шириной, надо отсортировать отдельно по высоте, ширине и площади прямоугольника. Так вот, основное есть, а вот с сортировкой заминка вышла. Вроде всё как надо написал, но в итоге выводит бред. Подскажите, где я напорол косяков. Может в самой функции сравнения или в описании функции qsort?
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
const int n = 10;
 
struct rectangle
{    
    double width, height;
};
int compare(const void * a, const void * b)
{
  if (*(int *)a < *(int *)b) return -1; 
  if (*(int *)a > *(int *)b) return 1; 
  return 0;
}
 
 
int main()
{
    setlocale(0, "Russian");
    int i;
    srand((unsigned)time(NULL));
    rectangle *arr_rectangle = new rectangle[10];
    for (i=0; i<n; i++)
    {
        arr_rectangle[i].height=rand()%10+1;
        arr_rectangle[i].width=rand()%10+1;
        cout << arr_rectangle[i].height << "\t" << arr_rectangle[i].width << endl;
    }
    qsort(arr_rectangle, 10, sizeof(arr_rectangle[i].height), compare);
    cout << "Отсортированный массив по высоте \n" << arr_rectangle[i].height << " " << endl;;
    cout << "Press Any Key to Exit..";
    getch();
    return 0;
    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2012, 21:59     Возникли трудности с функцией быстрой сортировки qsort
Посмотрите здесь:

задание с функцией qsort(). язык C C++
C++ Функция qsort для сортировки массивов структур
работа с функцией qsort C++
C++ Возникли огромные трудности с задачей. (С++)
C++ Возникли трудности(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
13.05.2012, 01:56     Возникли трудности с функцией быстрой сортировки qsort #21
Цитата Сообщение от Asdf Посмотреть сообщение
но она сразу подсчитывает 2 точки и выводиться
Нихт ферштейн ничего совсем Может в строке 6 заменить endl на "\t"? Или что?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Asdf
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 110
13.05.2012, 21:58  [ТС]     Возникли трудности с функцией быстрой сортировки qsort #22
6 6
36
5 4
20
2 1
2

Вот так у меня выводится, а хочеться, чтобы сначала были стороны, а потом тока площадь считалась

Добавлено через 5 минут
А всё окей ,решилось )) С форматированием поигрался и вуаля.

Добавлено через 19 часов 53 минуты
Появился вопрос, как внести в структуру rectangle оператор <, чтобы прямоугольник с меньшей площадью считался меньшим прямоугольником?
C++
1
2
3
4
struct rectangle
{    
    double width, height, area;
};
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
14.05.2012, 22:02     Возникли трудности с функцией быстрой сортировки qsort #23
C++
1
2
3
4
5
6
7
8
struct rectangle
{    
    double width, height, area;
    bool operator < (rectangle const& r) const
    {
        return area < r.area;
    }
};
Но такое сравнение неочевидное и я вряд ли так делал бы. Скорее добавил бы функцию, вроде IsAreaLessThan().
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2012, 22:07     Возникли трудности с функцией быстрой сортировки qsort
Еще ссылки по теме:

Пожскажите с функцией sort() или qsort() C++
Выполнить сортировку массива с помощью стандартной функции быстрой сортировки qsort C++
Выполнить сортировку массива с помощью стандартной функции быстрой сортировки qsort C++

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

Или воспользуйтесь поиском по форуму:
Asdf
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 110
14.05.2012, 22:07  [ТС]     Возникли трудности с функцией быстрой сортировки qsort #24
Блин... Создал новую тему Не понятно с сортировкой!, с описанием проблемы... Глянь плз, чёт я туплю немного с сортировками...
Yandex
Объявления
14.05.2012, 22:07     Возникли трудности с функцией быстрой сортировки qsort
Ответ Создать тему
Опции темы

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