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

Что делает функция compare в коде и зачем она нужна в qsort - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как перегрузить оператор индексации для указателя http://www.cyberforum.ru/cpp-beginners/thread686024.html
#define HIGH_H 0 #define LOW_H 1 #define OPEN_H 2 #define CLOSE_H 3 #define VOLUME_H 4 #define HER_H 5 class Candle { double high,low,open,close,volume; QDateTime time;
C++ Каково назначение функции malloc Вот решенная задача: #include <stdio.h> #include <stdlib.h> #include <math.h> struct athlet { long m; long pow; athlet() http://www.cyberforum.ru/cpp-beginners/thread686014.html
C++ Число Фибоначчи и рекурсия: код выдает неверные результаты
Функция возвращает значение типа int, принимает 2 переменных типа int и 1 типа bool. Первая переменная - номер числа из ряда Фибоначчи которое нужно найти. Если bool будет true, то значение второй переменной по окончанию программы должно быть равно количеству рекурсивных вызовов функции. Еcли значение переменной типа bool = false,то не изменяем значение второй переменной. int...
Сформировать и ввести упорядоченный односвязный список без использования list C++
Подскажите, как сформировать и ввести упорядоченный односвязный список без использования list. Заранее спасибо!!!
C++ Найти объем V, массу m, и площадь S основания слитка http://www.cyberforum.ru/cpp-beginners/thread686006.html
На практике в универе дали задачу, помогите с решением для C++ Известны плотность p, высота h, и радиус основания R циллиндрического слитка. Найти объем V, массу m, и площадь S основания слитка. Входные данные: p, h, S Выходные данные: S, V, m формулы: S=2*pi*R V=pi*R^2h
C++ После какого уровня c++ начинать изучать php Народ снова здравствуйте у меня снова вопрос вообщем я хочу изучить C++ и PHP хотел одновременно но на форуме мне сказали изучай сперва С++ так вот после какого времени изучения С++ можно изучать PHP ( одновременно досовершенствувуясь в с++) подробнее

Показать сообщение отдельно
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124

Что делает функция compare в коде и зачем она нужна в qsort - C++

01.11.2012, 14:33. Просмотров 757. Ответов 2
Метки (Все метки)

Объясните, пожалуйста, что делает функция compare (17 строка) в данном случае и зачем она нужна в 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
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
struct athlet
{
    long m;
    long pow;
    athlet()
    {
        m=0;
        pow=0;
    }
};
 
int compare (const void * a, const void * b)
{
    athlet aa=*(athlet*)a;
    athlet bb=*(athlet*)b;
    return (aa.m==bb.m ? aa.pow-bb.pow : aa.m-bb.m);
}
 
int main()
{
 
    long n;
    scanf("%i", &n);
    athlet *mass; // Введем указатель *mass типа athlet
    mass=(athlet*)malloc(n*sizeof(athlet)); // создадим динамически массив
    for(long i=0;i<n;i++)
        scanf("%i %i", &mass[i].m, &mass[i].pow);
    qsort(mass, n, sizeof(athlet), compare);
    
    long res=1;
    long now=(*mass).m;
    for(long i=1;i<n;i++)
        if(mass[i].pow>=now)
        {
            res++;
            now+=i[mass].m;
        }
 
    printf("%i", res);
        system ("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru