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

Сортировка данных в структуре - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при работе с памятью http://www.cyberforum.ru/cpp-beginners/thread302990.html
Написан следующий код: #include "stdafx.h" #include <iostream> #include <stdio.h> #include <math.h> #include <cstdlib> #include <fstream> using namespace std;
C++ в заданном тексте после каждой буквы «b» добавляет буквы «ak». Составить программу, которая в заданном тексте после каждой буквы «b» добавляет буквы «ak». #include<iostream.h> #include<math.h> void main () { int i, n; char *s2; http://www.cyberforum.ru/cpp-beginners/thread302980.html
взять матрицу из файла. C++
Помогите пожалуйста написать программу.... Напишите функцию, которая находит сумму четных элементов массива. Массив задан в файле, результат также необходимо записать в файл. или хотя бы...
Переопределение стандартных операций C++
Помогите переопределить операцию вычитания для класса дробей. Надо сделать ее через переопределенную операцию сложения (как с делением). Я попыталась сделать, но где-то ошибка. Через friend нельзя,...
C++ многопоточность, мьютексы http://www.cyberforum.ru/cpp-beginners/thread302967.html
мьютексы, потоки, анонимные каналы дело в том, что программа работает, но не всегда иногда на каком-то шаге ступарится видимо из-за плохой синхронизаии может кто подскажет? int count=5; HANDLE...
C++ Построить таблицу функции y=(cx^2-5)/x, где x меняется от 1 до 2 с шагом h=0.2 Построить таблицу функции y=(cx^2-5)/x, где x меняется от 1 до 2 с шагом h=0.2, c-сумма отрицательных элементов вектора T(8), a-сумма отрицательных элементов вектора R(12). подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
20.09.2011, 17:45
zhvaka, смотри документацию по qsort:
Код
QSORT(3)                                                                  Руководство программиста Linux                                                                  QSORT(3)



ИМЯ
       qsort - сортировка массива

ОБЗОР
       #include <stdlib.h>

       void qsort(void *base, size_t nmemb, size_t size,
                  int(*compar)(const void *, const void *));

ОПИСАНИЕ
       Функция qsort() сортирует массив из nmemb размером size. Аргумент base указывает на начало массива.

       Содержимое  массива  сортируется в соответствии с функцией сравнения, на которую ссылается compar, вызываемой вместе с двумя аргументами, которые ссылаются на сравниваемые
       объекты.

       Функция сравнения должна вернуть целое, меньшее, равное и большее нуля для случаев, когда первый аргумент  меньше,  равен  или  больше  второго  соответственно.  Если  оба
       элемента сравнения равны, порядок их сортировки в массиве не будет определен.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       Функция qsort() ничего не возвращает.

СООТВЕТСТВИЕ СТАНДАРТАМ
       SVr4, 4.3BSD, C89, C99.

ЗАМЕЧАНИЯ
       Для  использования  compar  подходят  библиотечные  процедуры, включая alphasort(3) и versionsort(3). Для сравнения C-строк в качестве функции сравнения можно использовать
       strcmp(3), как это указано ниже.

ПРИМЕР
       Для примера использования смотрите пример, указанный в bsearch(3).

       Еще один пример программы, сортирующей строки, переданные в качестве аргументов через командную строку:

       #include <stdio.h>
       #include <stdlib.h>
       #include <string.h>

       static int
       cmpstringp(const void *p1, const void *p2)
       {
           /* Аргументами данной функции являются "pointers to
              pointers to char", однако аргументами strcmp(3)
              являются "pointers to char", так что здесь происходит
              преобразование и разыменовывание ссылок */

           return strcmp(* (char * const *) p1, * (char * const *) p2);
       }

       int
       main(int argc, char *argv[])
       {
           int j;

           if (argc < 2) {
            fprintf(stderr, "Usage: %s <string>...\n", argv[0]);
            exit(EXIT_FAILURE);
           }

           qsort(&argv[1], argc - 1, sizeof(char *), cmpstringp);

           for (j = 1; j < argc; j++)
               puts(argv[j]);
           exit(EXIT_SUCCESS);
       }

СМОТРИТЕ ТАКЖЕ
       sort(1), alphasort(3), strcmp(3), versionsort(3)



                                                                                    2009-09-15                                                                            QSORT(3)
Тебе нужно реализовать функцию-компаратор, которая принимает два нетипизированных указателя на объекты твоей структуры и должна возвращать отрицательное число, если первый объект меньше второго, 0, если они равны, и положительное число, если первый объект больше второго. Естественно, перед непосредственным сравнением нужно скастовать указатели к соответствующим типам. Выше есть пример.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.