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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
StopCry
0 / 0 / 0
Регистрация: 22.05.2013
Сообщений: 13
#1

Сортировка таблицы - C++

31.05.2013, 18:48. Просмотров 896. Ответов 1
Метки нет (Все метки)

Задача отсортировать таблицу по ключу (в качестве ключа использовать имя), используя qSort.
Таблицу я такой структурой задал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct line
{
    char name[20];
    char type[20];
    int count;
    int memory;
    char ctype[20];
    int cmemory;
};
 
struct table
{
    line T[size];
    int n;
};
Вот функция для сортировки
C++
1
2
3
4
int compare_str(const void* a, const void* b)//для быстрой сортировки
{
    return strcmp(*(const char**)a, *(const char**)b);
}
и собственно вопрос: как сюда передать таблицу для сортировки(вместо вопросительного знака)?
C++
1
qsort (?, size, sizeof(char), compare_str);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 18:48     Сортировка таблицы
Посмотрите здесь:

Сортировка массивов с помощью таблицы - C++
Здравствуйте у меня такая проблема. Преподаватель сказал написать код. Сортировка массивов с помощью таблицы. Тип сортировки любой.А причем...

Удаление записи из таблицы, с проверкой на совпадение с записями из другой таблицы. - C++
День добрый! В общем такая проблема: Мой проект на курсовую работу представляет из себя простую базу данных. Имеется таблица заказчики...

Даны таблицы А[1..n] ,В[1..m]. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В - C++
кто сможет решите: Даны таблицы А ,В. Построить таблицу С в которой сначала размещаются все элементы А, затем все элементы таблицы В

Сортировка таблицы - Delphi БД
Добрый день! Подскажите, пожалуйста, как сортировать таблицу, когда не все параметры сортировки заданы. Т.е. есть программа "Выбор...

Сортировка таблицы - PHP
Всем привет :) У меня есть форма записи, при отправки данной формы, она отправляется в админ панель, но увы она ниже других форм...

Сортировка таблицы - Pascal
Помогите решить проблему, задача на сортировку таблицы!Проблема: не получается прочитать таблицу из файла, при попытке все содержимое файла...

Сортировка таблицы - PHP БД
Приветствую! Хочу сделать сортировку таблицы путём перетаскивания , тем самым меняя позицию определённой строки. Само перетаскивание...

Сортировка таблицы - C#
Всем привет. Имеется таблица, в которой одно из полей это дата (в формате 10.04.14). Понадобилось отсортировать, но столкнулся с проблемой....

Сортировка таблицы - MS Excel
Допустим, имеются 2 таблицы расположенные в разных листах. Таблица1. строка1 | строка11 строка2 | строка22 строка3 | строка33 ...

Сортировка таблицы - MS Excel
Добрый день всем.Играю в кено. Есть таблица из 60(от 1 до 60) чисел.Выпадает в тираже 20 чисел(разные) из них 10 имеют максимальный...

Сортировка таблицы - JavaScript
Есть код для сортировки таблицы,но вот проблема,не могу в нем разобраться,может кто-нибудь поможет с комментариями,или может есть код проще...

Сортировка таблицы - jQuery
Всем привет. Нужна сортировка столбиков таблицы. Ситуация следдующая: 1. В первом столбике находяться критерии по которым сортировать ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
31.05.2013, 19:21     Сортировка таблицы #2
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
46
47
48
49
50
51
52
53
54
55
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <ctime>
 
struct line {
    char name[20];
    char type[20];
    int count;
    int memory;
    char ctype[20];
    int cmemory;
};
 
struct table {
    line T[10];
    int n;
};
 
int cmp( const void *a, const void * b )
{
    line *pa = (line *)a;
    line *pb = (line *)b;
 
    int la = strlen( pa->name );
    int lb = strlen( pb->name );
 
    for ( int i = 0; i < (la < lb ? la : lb); i++ ) {
        if ( pa->name[i] < pb->name[i] ) return -1;
        else
        if ( pa->name[i] > pb->name[i] ) return 1;
    }
 
    return 0;
}
 
int main()
{
    table t;
 
    srand( time( 0 ) );
    for ( int i = 0; i < 10; i++ ) {
        sprintf( t.T[i].name, "%c%c", rand() % ('z' - 'a') + 'a', rand() % ('z' - 'a') + 'a' );
        printf( "%s\n", t.T[i].name );
    }
    printf( "\n" );
 
    qsort( t.T, 10, sizeof( line ), cmp );
 
    for ( int i = 0; i < 10; i++ ) {
        printf( "%s\n", t.T[i].name );
    }
 
    return 0;
}
Ответ Создать тему
Опции темы

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