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

qsort - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 76, средняя оценка - 4.61
yuraluboml2
Сообщений: n/a
17.11.2008, 14:07     qsort #1
читал, что с помощю QSORT можно упорядочить масив, но не пишет как. помогите!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2008, 14:07     qsort
Посмотрите здесь:

qsort C++ C++
Вопрос по ()qsort C++
C++ не работает qsort
C++ Застопорился с qsort
Функция qsort C++
C++ qsort
Функция Qsort C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8505 / 2172 / 61
Регистрация: 07.03.2007
Сообщений: 10,844
Завершенные тесты: 1
17.11.2008, 14:12     qsort #2
вот тебе пример:
Код
#include <stdio.h>
#include <stdlib.h>
int values[] = { 40, 10, 100, 90, 20, 25 };
int compare (const void * a, const void * b){  
   return ( *(int*)a - *(int*)b );
}
int main (){  
  int n;  
  qsort (values, 6, sizeof(int), compare);  
  for (n=0; n<6; n++)     
    printf ("%d ",values[n]);  
  return 0;
}
Xentar
Of Wolf and Man
 Аватар для Xentar
993 / 188 / 4
Регистрация: 09.07.2008
Сообщений: 1,885
17.11.2008, 14:26     qsort #3
Цитата Сообщение от WooDooMan Посмотреть сообщение
int compare (const void * a, const void * b){ return ( *(int*)a - *(int*)b );}
А про это можно поподробнее ?
Что передается и что возвращается ?
Lord_Voodoo
Супер-модератор
 Аватар для Lord_Voodoo
8505 / 2172 / 61
Регистрация: 07.03.2007
Сообщений: 10,844
Завершенные тесты: 1
17.11.2008, 14:50     qsort #4
из прототипа:
Код
void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );
мы видим, что это указатель на функцию... а вообще я функцию не юзал, просто нагуглил пример)))
yuraluboml2
Сообщений: n/a
17.11.2008, 17:20     qsort #5
Пасибо за помощь!!!!
Hotbed
 Аватар для Hotbed
48 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 55
23.05.2011, 11:41     qsort #6
Почему то у меня не получается с char только с int массивом. А как сделать так чтобы сортировались элементы строки char массива или только int применимо к sotr/qsort ? Ну например с динамическим массивом.
C++
1
2
3
4
5
6
7
8
{
    const int t=30;
    
    char *A;
  A = new char[t];
fgets(A,t,stdin);
    
    }
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
23.05.2011, 12:21     qsort #7
Hotbed,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstdlib>
#include <cstring>
 
int compare(const void* first, const void* second)
{
    return *((char*)first) - *((char*)second);
}
 
int main()
{
     char A[] = "qwnmnllamzms\0";
     qsort(A, strlen(A), sizeof(char), compare);
     std::cout << A << '\n';
     return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2011, 12:38     qsort
Еще ссылки по теме:

Vector and qsort C++
qsort vs sort C++
qsort C++
C++ qsort
Сортировка qsort C++

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

Или воспользуйтесь поиском по форуму:
Hotbed
 Аватар для Hotbed
48 / 2 / 1
Регистрация: 02.04.2011
Сообщений: 55
23.05.2011, 12:38     qsort #8
Блин тоже самое вводил в код, видимо где то ошибся , ошибку выдавала о несоответствии типа. ForEveR, Спасибо.
Yandex
Объявления
23.05.2011, 12:38     qsort
Ответ Создать тему
Опции темы

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