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

sortirovka slov - C++

Восстановить пароль Регистрация
 
Respected
0 / 0 / 0
Регистрация: 19.01.2013
Сообщений: 47
10.06.2013, 15:19     sortirovka slov #1
задан текст. выполнить сортировку слов расположив их в порядке увеличения букв. (пример: qqqq ssssssss dfghdfagkhbbgfd kjdfkgkdnlglhmeurtiuerbgn)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2013, 15:19     sortirovka slov
Посмотрите здесь:

SORTIROVKA Pascal
Sortirovka dannih v tablice SubForm MS Access
C# ASP.NET (ASP.NET) DataGrid: Sorting сортировка -> Kak uznat' po kakoi kolonki sortirovka?
C++ sortirovka slov

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
12.06.2013, 01:12     sortirovka slov #2
Завтра утром допилю формирование нового массива.
P.S. Удали вывод отладочной инфы

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <iostream>
 
char buffer[] = " later now them me mine c++ oop";
char *warehouse;
 
struct word
{
    int end; // конец
    int beg; // начало
    int size; // размер
    int index; // индекс слова
};
 
int word_num(char *buffer)
{
    int x=0;
    int word=0;
    while(buffer[x])
    {
        while(buffer[x]==' ' && buffer[x]!='\0')
            x++;
        if(buffer[x]!=' ')
        {
            while(buffer[x]!=' ' && buffer[x]!='\0')
                x++;
            word++;
        }
    }
    return word;
}
 
void set_word(word *obj, char *buffer)
{
    int x, _x, _x1;
    int size, i;
    x = _x = _x1 = size = i = 0;
    while(buffer[x])
    {
        while(buffer[x]==' ' && buffer[x]!='\0')
            x++;
        _x = x;
        while(buffer[x]!=' ' && buffer[x]!='\0')
            x++;
        _x1 = x;
        size = _x1 - _x;
        if(size)
        {
            obj[i].size = size;
            obj[i].beg = _x;
            obj[i].end = _x1;
            obj[i].index = i;
            i++;
        }
    }
}
 
void sort_word(word *obj, int word)
{
    int x;
    for ( int i=0; i!=word; i++)
    {
        for( int i=0; i+1!=word; i++)
        {
            if(obj[obj[i].index].size > obj[obj[i+1].index].size)
            {
                x = obj[i].index;
                obj[i].index = obj[i+1].index;
                obj[i+1].index = x;
            }
        }
    }
}
 
void full_buffer(word *obj, int word)
{
    for(int i=0; i!=word; i++ )
    {
        int x = obj[obj[i].index].beg;
        int y = obj[obj[i].index].end;
        for(int i=x; i!=y; i++)
        {
            //std::cout<<buffer[i];
            warehouse[i] = buffer[i];
            std::cout<<warehouse[i];
        }
        std::cout<<' ';
    }
}
 
int main()
{
    word *w;
    int size = word_num(buffer);
    w = new word[size];
    warehouse = new char[sizeof(buffer)+1];
 
    std::cout<<size<<std::endl;
 
    set_word(w, buffer);
 
    for(int i=0; i!=size; i++)
        std::cout<<w[i].size<<' ';
 
    std::cout<<std::endl;
 
    sort_word(w, size);
 
    for(int i=0; i!=size; i++)
        std::cout<<w[w[i].index].size<<' ';
 
    full_buffer(w, size);
 
    return 0;
}
До:
later now them me mine c++ oop
После:
me now c++ oop them mine later
Yandex
Объявления
12.06.2013, 01:12     sortirovka slov
Ответ Создать тему
Опции темы

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