Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Основы ветвления http://www.cyberforum.ru/cpp-beginners/thread569727.html
Встретился на сайте с такой подачей ветвления: if ( !qwe ) Что значит восклицательный знак, неравенство?
C++ Сортировка букв. Отсортировать буквы в строке в порядке возрастания с учетом регистра. Помогите написать код под компилятор Borland c++,заранее спасибо!!! http://www.cyberforum.ru/cpp-beginners/thread569724.html
C++ рандом со значение меньше нуля
for (int i = 0; i < 50; i++){ A=rand()%100; } как сделать чтобы рандомные числа были не только положительные ну и отрицательные)
Как переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами C++
Подскажите как реализовать перестановку элементов массива в заданом промежутке? Минимум и максимум массива я нашел, а как переставить элементы не знаю... Подкиньте идею.
C++ драйвер клавиатуры http://www.cyberforum.ru/cpp-beginners/thread569708.html
Здравствуйте! Может кто-нибудь дать исходники на драйвер клавиатуры и мыши с подробным описанием строк. Или любой небольшой исходник драйвера с подробным описанием строк. Спасибо.
C++ Вывести таблицу значений функции Написать программу, которая выводит таблицу значений функции y=|[-2|+|x+1|. Диапазон изменения аргумента: от -4 до 4, шаг=0,5. подробнее

Показать сообщение отдельно
Asdf
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 110

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

09.05.2012, 21:59. Просмотров 1563. Ответов 23
Метки (Все метки)

Добрый вечер. Есть массив прямоугольников со своей высотой и шириной, надо отсортировать отдельно по высоте, ширине и площади прямоугольника. Так вот, основное есть, а вот с сортировкой заминка вышла. Вроде всё как надо написал, но в итоге выводит бред. Подскажите, где я напорол косяков. Может в самой функции сравнения или в описании функции 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;
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru