Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739

работа с функцией qsort

20.12.2011, 17:44. Показов 3067. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот есть код который отделает слова и записывает в массив и надо их отсортировать по возрастанию длины как использовать 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
#include <iostream>
using namespace std;
 
 
 
void main()
{
 
char div[] = "(){}[]<>;\"=+-*., ";
char*text,*s1,*s2;
text=new char[30];
s1=new char[30];
s2=new char[30];
 char *mas[30];
     int mac[30];    
        char s[486]="So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid,  whether  the  pleasure  of making a daisy-chain would be worth the trouble of getting up and  picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.";
        cout<<"Enter string: ";
        unsigned int a,i=0;
        a=0;
        int arrCount[255];
        int ind=0;
        s1=strtok(s,div);
     while (s1!=NULL)
     {
          mas[i]=new char[30];
          strcpy(mas[i],s1);
          mac[i]=strlen(s1);
          i++;
          s1=new char[30];
          s1=strtok(NULL,div);
     }
//qsotr(
 system("pause");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2011, 17:44
Ответы с готовыми решениями:

задание с функцией qsort(). язык C
задание: составить программу, которая обрабатывает следущие данные про наличие вычислительной техники: название подраздела, название...

Пожскажите с функцией sort() или qsort()
Есть программа, которая генерирует случайно 10 неповторяющихся чисел от 1 до 10 и записывает их в массив array, вот код: ...

Возникли трудности с функцией быстрой сортировки qsort
Добрый вечер. Есть массив прямоугольников со своей высотой и шириной, надо отсортировать отдельно по высоте, ширине и площади...

32
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
20.12.2011, 22:00  [ТС]
Студворк — интернет-сервис помощи студентам
оно выводит не отсортированно по длине
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
20.12.2011, 22:03
надо изменить 1 строчку
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
20.12.2011, 22:03  [ТС]
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
#include <iostream>
using namespace std;
int cmp(const void* a, const void* b) {
return strcmp(*(char**)a,*(char**)b);
}
void main()
{
 
char div[] = "(){}[]<>;\"=+-*., ";
char*text,*s1,*s2;
text=new char[30];
s1=new char[30];
s2=new char[30];
 char *mas[10];
     int mac[30];    
        char s[486]="So she was considering in her own mind, as we";
        //cout<<"Enter string: ";
       int a,i=0;
        a=0;
        int arrCount[255];
        int ind=0;
        s1=strtok(s,div);
     while (s1!=NULL)
     {
         mas[i]=new char[30];
         strcpy(mas[i],s1);
         mac[i]=strlen(s1);
         i++;
         s1=new char[30];
         s1=strtok(NULL,div);
     }
 
qsort(mas,i,4,cmp);
 
        for (int k=0; k<i; k++) 
        {
                puts(mas[k]);
        }
 
 system("pause");
}
вот код что тут надо изменить не понимаю
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
20.12.2011, 22:07
ну будь добр подумай немножко
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
20.12.2011, 22:08  [ТС]
да уже день ломаю голову не могу понять про какие три буквы имете ввиду
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
20.12.2011, 22:08
ну и всё таки как было сказано измени уж 4 на sizeof(mas[0])

про 3 буквы я уже стер.
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
20.12.2011, 22:09  [ТС]
все равно не выводит отсортировано просто вывоводит слова
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
20.12.2011, 22:13
sergeu90, ну а толку то
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int cmp (const void *a, const void*b) { return strcmp ( *(char **)a, *(char **)b) ; }
 
int main(void)
{
    char *buf[BUFSIZ], s[BUFSIZ] = "Hello world world hello", *p;
    size_t i, cnt = 0;
 
    p = strtok (s, DELIM);
 
    while ( p )
    {
        buf[cnt++] = strdup ( p );
        p = strtok (NULL, DELIM);
    }
 
    qsort (buf, cnt, sizeof (char*), cmp); 
 
    for ( i = 0 ; i < cnt ; ++i)
    {
        printf ("\n %s", buf[i]);
        free (buf[i]);
    }
 
    system ("pause");
    return 0;
}
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
20.12.2011, 22:14  [ТС]
этот код тоже не выводит в порядке возрастания слова
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
20.12.2011, 22:15
sergeu90, http://liveworkspace.org/code/... 122cc4d7c6
0
 Аватар для OstapBender
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
20.12.2011, 22:16
go, ему нужно по ДЛИНЕ слова выводить, и он не может понять как изменить код
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
20.12.2011, 22:16  [ТС]
должно с самого малой длины слова до самой большой выводить
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
20.12.2011, 22:18
sergeu90, а самому подумать?
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIM " \t\n"
 
int cmp (const void *a, const void*b) { return strlen ( *(char **)a) - strlen ( *(char **)b) ; }
 
int main(void)
{
        char *buf[BUFSIZ], s[BUFSIZ] = "Hello world world hello", *p;
        size_t i, cnt = 0;
 
        p = strtok (s, DELIM);
 
        while ( p )
        {
                buf[cnt++] = strdup ( p );
                p = strtok (NULL, DELIM);
        }
 
        qsort (buf, cnt, sizeof (char*), cmp); 
 
        for ( i = 0 ; i < cnt ; ++i)
        {
                printf ("\n %s", buf[i]);
                free (buf[i]);
        }
 
        system ("pause");
        return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2011, 22:18

Работа функции qsort - объяснить работу функции
#include&lt;iostream&gt; #include&lt;cstdlib&gt; int mysort(const void *arg1, const void *arg2); int main() { const short ARR_SIZE=5; int...

Работа с функцией
Описать функцию smooth(A,n), заменяющую каждый элемент вещественного массива A размера n на его среднее арифметическое со своими соседями...

Работа с функцией
Задание : Отсортировать массив по возрастанию #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

Работа с функцией

работа с функцией в С++
В ходе выполнения работы необходимо создать программу, которая определяет и инициализирует двумерный массив целых значений и затем...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru