Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Как массив перебирать с конца? https://www.cyberforum.ru/ cpp-beginners/ thread687309.html
Простой цикл for(i=0;i<n;i++) начинает перебирать массив с первого элемента по последний а как записать чтобы цикл начал перебирать с останьго элемента и до первого?
Лямбды C++
Непонятно, как работает это простенький код, и почему именно так: int id = 0; auto f = () mutable { cout << "id: " << id << std::endl; ++id; }; id = 42; f(); f(); f();
C++ Массив: Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. https://www.cyberforum.ru/ cpp-beginners/ thread687291.html
Помогите, пожалуйста. Как решить в с++. Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. Размер массива N задается в виде константы в исходном коде программы. Все числа вводятся с клавиатуры.
C++ Есть ли нерекурсивный алгоритм вычисления детерминанта квадратной матрицы nxn? Я в алгебре очень слаб. В голове есть идея вычислить детерминант по перестановкам, но в голову не приходит алгоритм перебора всех перестановок. Есть идея разложить все по первой строке, но тогда придется делать это рекурсивно до тех пор, пока не встретится определитель 2x2, что выглядит не очень красиво, хотя я вряд ли буду вычислять определители выше 6 порядка. Но хотелось бы решить это... https://www.cyberforum.ru/ cpp-beginners/ thread687274.html
C++ Схождение ряда
#include <vcl.h> #include <math.h> #include <stdio.h> #pragma hdrstop void main() { double f=1, ff=1, z, u, e, g; int n; printf ( "\n\t 123 \n"); printf ( "\n 123 \n");
C++ Структура, по строкам построить бинарное дерево поиска помогите найти ошибку в этом коде. Этот код должен по строкам построить бинарное дерево поиска #include<iostream> #include<string> using namespace std; struct tnode { string word; int count; tnode *left; tnode *right; https://www.cyberforum.ru/ cpp-beginners/ thread687262.html
C++ Вычислить сумму элементов матрицы М (9х9), лежащих справа от главной диагонали (исправить ошибки 2) https://www.cyberforum.ru/ cpp-beginners/ thread687255.html
условия таковы: Вычислить сумму элементов матрицы М (9х9), лежащих справа от главной диагонали. Мой листинг программы: #include<stdio.h> #include<stdlib.h> int main() { int summa=0; int matrix; for (int i=0;i<8;i++) {
Умножение двух матриц C++
Помогите написать перемножение двух матриц без создание третьей матрицы. Что-то написал, но не то очевидно... matrix* matrix::operator*=(const matrix &c) { int i, j, k,m; double sum; if(this->canmul(c)==false) { return this;
C++ Работа с консолью https://www.cyberforum.ru/ cpp-beginners/ thread687213.html
Можно ли работать с бд в конлоси. Если да то подкажите как поочерёдно лоставать из таблицы например 123 по значению Показывать его на экране и записать это значение в другую страницу
C++ Удаление всех элементов после запятой https://www.cyberforum.ru/ cpp-beginners/ thread687203.html
Написать программу, которая бы удаляла все элементы после запятой! Я вот написал программу, но меня смущает мигания курсора! Он должен был мигать в конце обрезанного строки, а он мигает в конце немодифицированного строки, может это и тупой вопрос, но мне интересно почему так? #include <iostream> #include <conio.h> #include <string.h> int n=10; using namespace std; int main(){ char...
Управление текстом и цветом к консоли C++
Добрый вечер! Интересуют 2 вопроса: 1) Как в консоли оформить шапку (большие буквы вверху)? 2) Как изменить цвет фона и текста? P.S. Работаю в Dev Cpp.
C++ Ввести фамилию, имя и отчество как одно данное типа строка. Определить длину строки и количество букв «а» . Выполнить задачи своего двумя способами Ввести фамилию, имя и отчество как одно данное типа строка. Определить длину строки и количество букв «а» в нем. Выполнить задачи своего двумя способами: - Рассматривая строку как массив символов. - Применяя к строке функции и процедуры. https://www.cyberforum.ru/ cpp-beginners/ thread687194.html
28 / 12 / 9
Регистрация: 30.11.2011
Сообщений: 44
23.11.2012, 21:24  [ТС] 0

Соритровка слиянием - C++ - Ответ 3744702

23.11.2012, 21:24. Показов 1046. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено Bsod как решение

Решение

раз никто не помог, я сделал сам)) вот код, если вдруг кому пригодится

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#include < iostream>
#include <conio.h>
#include <time.h>
using namespace std;
    struct num
    {
        int value;
        num *next;
    } *phead, *r, *phead_1, *phead_2, *r1, *r2;
 
void generator()
{
    srand(time(NULL));
    cout << "Введите количество узлов: ";
    int node; cin >> node;
        for (int i = 0; i < node; i++)
        {
            if (phead)
            {
                r->next = new (num);
                r = r->next;
                r->next = NULL;
                r->value = rand()%11;
            }
            else 
            {
                phead = new (num);
                r = phead;
                phead->next = NULL;
                phead->value = rand()%11;
            }
            cout << r->value << ' ';
        }
    cout << "\n\n\n";
}
int sorted()
{
    r = phead;
    bool f = 1;
    while (r->next)
    {
        if (r->next->value < r->value) {f = 0; break;}
        r = r->next;
    }
    return f;
}
int division()
{
    cout << "division: ";
    r = phead;
    bool f = 0;
    /////все элементы
    while (r->next)
    {
        if (!f)
            {
                if (phead_1)
                {
                    r1->next = new (num);
                    r1 = r1->next;
                    r1->next = NULL;
                    r1->value = r->value;
                    if (r->next->value < r1->value) {f = !f; r = r->next; continue;}
                }
                else
                {
                    phead_1 = new (num);
                    phead_1->next = NULL;
                    r1 = phead_1;
                    r1->value = r->value;
                    if (r->next->value < r1->value) {f = !f; r = r->next; continue;}
                }
            }
        if (f)
            {
                if (phead_2)
                {
                    r2->next = new (num);
                    r2 = r2->next;
                    r2->next = NULL;
                    r2->value = r->value;
                    if (r->next->value < r2->value) {f = !f; r = r->next; continue;}
                }
                else
                {
                    phead_2 = new (num);
                    phead_2->next = NULL;
                    r2 = phead_2;
                    r2->value = r->value;
                    if (r->next->value < r2->value) {f = !f; r = r->next; continue;}
                }
            }
        r = r->next;
        }
    //////последний элемент
        if (!f) 
            {
                r1->next = new (num);
                r1 = r1->next;
                r1->next = NULL;
                r1->value = r->value;
            }
        else
            {
                if (phead_2)
                {
                    r2->next = new (num);
                    r2 = r2->next;
                    r2->next = NULL;
                    r2->value = r->value;
                }
                else
                {
                    phead_2 = new (num);
                    phead_2->next = NULL;
                    r2 = phead_2;
                    r2->value = r->value;
                }
            }
        ///
 
        r = phead; r1 = phead_1; r2 = phead_2;
        
        while (r1)
            {
                cout << r1->value << ' ';
                r1 = r1->next;
            }
        cout << "   |||   ";
        while (r2)
            {
                cout << r2->value << ' ';
                r2 = r2->next;
            }
        cout << " :end of division\n\n";
    return 0;
}
int compact()
{
    cout << "compact: ";
    r = phead;
    r1 = phead_1;
    r2 = phead_2;
    bool f;
    while (r)
    {   
        if (!r1)
            {
                r->value = r2->value;
                r = r->next;
                r2 = r2->next;
                delete phead_2;
                phead_2 = r2;
                continue;
            }
        if (!r2)
            {
                r->value = r1->value;
                r = r->next;
                r1 = r1->next;
                delete phead_1;
                phead_1 = r1;
                continue;
            }
        
        if (r1->value <= r2->value) f = 0;
        else f = 1;
            if (!f)
                {
                    r->value = r1->value;
                    r = r->next;
                    r1 = r1->next;
                    delete phead_1;
                    phead_1 = r1;
                }
            if (f)
                {
                    r->value = r2->value;
                    r = r->next;
                    r2 = r2->next;
                    delete phead_2;
                    phead_2 = r2;
                }
    }
    r = phead;
    while (r)
        {
            cout << r->value << ' ';
            r = r->next;
        }
    cout << "\n\n";
    return 0;
}
void main()
{
    setlocale (LC_ALL, ".1251");
    generator();
    bool s = sorted();
    while (!s)
    {
        division();
        compact();
        s = sorted();
    }
    getch();
}


Вернуться к обсуждению:
Соритровка слиянием C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2012, 21:24
Готовые ответы и решения:

Пирамидальная соритровка
Парни, есть код етой сориторви, есть масив который надо посортировать. Но есть проблема, я не знаю...

Алфавитная соритровка структур из файла
Всем доброе утро. struct zapchasti { char firma; char tovar; int kol; int cena; ...

Сортировка слиянием
Даны два текстовых файла f1.txt и f2.txt, состоящие из целых чисел, которые упорядочены по...

Сортировка слиянием
Нужен самый примитивный рабочий код желательно с комментарием. Спасибо

1
23.11.2012, 21:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2012, 21:24
Помогаю со студенческими работами здесь

Сортировка слиянием
Привет всем, пытаюсь сделать сортировку 100 чисел слиянием. Выдается ошибка на функции delete...

сортировка слиянием
Доброго времени суток, помогите пожалуйста с сортировкой слиянием... дело в том что нужно сделать...

Сортировка слиянием в С++
Вот такое задание: Составить программу реализации указанного метода сортировки и иллюстрации его...

Сортировка слиянием С++
Помогите пжлст написать программу со слиянием. Например вводим массивы A=1 2 3 и B= 4 5 6 и...

Сортировка с слиянием
Добрый вечер! Помогите с подсчетом перестановок и сравнений при сортировке с слиянием. Вот нашел...

Сортировка слиянием c++
Необходимо слить 2 упорядоченных по не возрастанию списка в один, так же упорядоченный по не...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru