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

sortirovka slov - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка слиянием http://www.cyberforum.ru/cpp-beginners/thread897451.html
Объясните пожалуйста как сделать рекурсивную сортировку слиянием списка. Список имеет такие элементы struct List { int data; List* next; }; Единственное, что понял,надо рекурсивно делить списки по палам, а вот когда сортировать не знаю.
C++ Проблемы с VS 2012 Имеется код, он прекрасно работает в Visual Studio 2008, но при компиляции в 2012 версии выдает такую вот ошибку. Как от нее можно отделаться и вообще отделаться от ошибок 2012 версии :) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <iostream> #include <conio.h> using namespace std; int main(int argc, char* argv) http://www.cyberforum.ru/cpp-beginners/thread897446.html
нужно перевести с паскаля на с++ C++
uses crt; var E,x,p,t:real; k:integer; { Возведение х в степень к } function step(x:real;k:integer):real; var i: integer; st: real; begin st:=1;
Найти узел, имеющий ближайший к значению ключ C++
Всем привет. Есть условие. первая часть уже решена. помогите пожалуйста найти узел, имеющий ближайший к этому значению ключ. #include<iostream.h> struct node { int Key; int Count; node *Left; node *Right;
C++ Перегрузка функций (написать программу вычисления суммы элементов массива разных типов) http://www.cyberforum.ru/cpp-beginners/thread897428.html
Используя перегрузку функций, написать программу вычисления суммы элементов массива разных типов
C++ В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству: текст совпадает с каким то отрезком ряда 0 В заданный непустой текст входят только цифры и буквы. Определить, удовлетворяет ли он следующему свойству: текст совпадает с каким то отрезком ряда 0123456789 (например: 2, 678, 89). Добавлено через 8 минут ........ подробнее

Показать сообщение отдельно
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
12.06.2013, 01:12     sortirovka slov
Завтра утром допилю формирование нового массива.
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
 
Текущее время: 23:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru