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

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

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

sortirovka slov - C++

10.06.2013, 15:19. Просмотров 229. Ответов 1
Метки нет (Все метки)

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

sortirovka slov - C++
/*Написать программу, которая выполняет следующие действия: • вводит с клавиатуры данные в массив, состоящий из десяти структур; записи...

Не сохраняются изменения в массиве после выполнения slov - Pascal ABC
procedure slov(str:string;var c:integer); var i:integer; begin c:=0; str:=str+' '; sl:=''; for i:=1 to length(str) do if...

SORTIROVKA - Pascal
POMOGITE OTSORTIROVAT DVYXMERNI MASSIV V PORIADKE VOZRASTANIA 4ISEL

Sortirovka dannih v tablice SubForm - MS Access
Dobroe vrema sutok! Mojet danni vopros i iavlaetsa lamerskim voprosom, no poproshu otvetit. Kak mojno otfiltrovat dannie v tablice...

(ASP.NET) DataGrid: Sorting сортировка -> Kak uznat' po kakoi kolonki sortirovka? - C# ASP.NET
V DataGrid -> OnSortCommand='dgArtSorting' Public Sub dgArtSorting(ByVal source As Object, ByVal e As...

sortirovka slov - C++
/*Написать программу, которая выполняет следующие действия: • вводит с клавиатуры данные в массив, состоящий из десяти структур; записи...

Не сохраняются изменения в массиве после выполнения slov - Pascal ABC
procedure slov(str:string;var c:integer); var i:integer; begin c:=0; str:=str+' '; sl:=''; for i:=1 to length(str) do if...

SORTIROVKA - Pascal
POMOGITE OTSORTIROVAT DVYXMERNI MASSIV V PORIADKE VOZRASTANIA 4ISEL

Sortirovka dannih v tablice SubForm - MS Access
Dobroe vrema sutok! Mojet danni vopros i iavlaetsa lamerskim voprosom, no poproshu otvetit. Kak mojno otfiltrovat dannie v tablice...

(ASP.NET) DataGrid: Sorting сортировка -> Kak uznat' po kakoi kolonki sortirovka? - C# ASP.NET
V DataGrid -> OnSortCommand='dgArtSorting' Public Sub dgArtSorting(ByVal source As Object, ByVal e As...


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

Или воспользуйтесь поиском по форуму:
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
12.06.2013, 01:12 #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
0
Ответ Создать тему
Опции темы

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