Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Прочитать числа из файла в матрицу https://www.cyberforum.ru/ cpp-beginners/ thread1258161.html
Привет всем! У меня такая задача: дан файл out_file.txt, содержащий цифры, такого, например, вида: 0 12345 54321 34679 34986 34578 1 54223
C++ Метод фотонных карт, какую библиотеку целесообразно использовать?
Какую графическую библиотеку наиболее целесообразно использовать для данного метода? Имеет смысл писать свою или видоизменять уже существующие? #include "stdio.h" #include "stdlib.h" #include "string.h" #include "math.h" Photon_map :: Photon_map( const int max_phot ) { stored_photons = 0; prev_scale = 1;
C++ Линейный и бинарный поиск: что возвращает функция, если ключ не найден? https://www.cyberforum.ru/ cpp-beginners/ thread1258147.html
Есть функция линейного поиска int linesearch(int *V, int n, int b) { int i; for(i = 0; i < b; i++) cout << V << " "; cout << endl; for(i = 0; i < 20; i++)
C++ Ошибка, связанная с переполнением буфера В общем, данный код рабочий, собираю на VS2013, при компиляции выдает переполнение буфера. Другие люди пробовали собирать у себя, у них всё нормально. Кто может, исправьте, пожалуйста. #include "stdafx.h" #include<iostream> //Содержит cin,coute #include<fstream> //Содержит тип fstream #include<string.h> //Содержит строковые функции #include<conio.h> ... https://www.cyberforum.ru/ cpp-beginners/ thread1258146.html
Найти первый отрицательный элемент и его индекс в массиве C++
В массиве из 15 чисел найти первый отрицательный элемент и его индекс в массиве. (Пожалуйста помогите чайнику)
C++ Code Blocks ошибка Помогите разобраться, почему программа выдает ошибку. https://www.cyberforum.ru/ cpp-beginners/ thread1258144.html
C++ Двоичный поиск в массиве выдает один и тот же ответ https://www.cyberforum.ru/ cpp-beginners/ thread1258143.html
выдаёт один и тот же ответ(( #include <iostream> #include <iomanip> using namespace std; int binarySearch(int , int, int, int, int); void printHeader(int); void printRow(int , int, int, int, int); main() {
C++ Сумма массива по формуле
Помогите разобраться с программой #include <iostream> using namespace std; int main(void) { int a={2, 4, 6, 8, 9}; int sum=0;
C++ Объединение данных В общем, такая история. Не знаю, как реализуется передача данных в сети, но я хочу сделать так: формируется пакет с ID и данными. Нужно написать функцию, которая бы складывала данные и возвращала структуру (или указатель на нее). SendPack, собственно, уже занимается рассылкой подготовленных данных. typedef struct{ char* data; int size; }pack; pack* func(...){...;} void SendPack(... https://www.cyberforum.ru/ cpp-beginners/ thread1258118.html C++ Работа с реестром Windows на си++ Можно ли определить в реестре какое устройство было последнее подключено к компьютеру через usb и удалить все записи о нем???? Если можно приведите пример кода на с++. Огромное спасибо https://www.cyberforum.ru/ cpp-beginners/ thread1258114.html
Как работает std::deque? C++
Пытаюсь разобраться в работе std-шного дека. Веб-серфинг дал следующее: Данные хранятся в куче небольшими блоками(массивами) в виде связанного списка. С добавлением/удалением элементов более - менее все ясно - данные записываются в блок, когда он заканчивается, создается новый, связывается указателями с нужной стороны, и запись идет уже в него. А вот произвольный доступ к элементу с постоянной...
C++ Книги по си++ https://www.cyberforum.ru/ cpp-beginners/ thread1258099.html
Здравствуйте! Не подскажите какие книги почитать, если уже освоил основы си++. Для более углубленного изучения языка.Заранее спасибо!
0 / 0 / 1
Регистрация: 24.06.2014
Сообщений: 74
0

Вставка нового элемента в двумерный динамический массив дополнить код - C++ - Ответ 6618267

18.09.2014, 00:46. Показов 1970. Ответов 4
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте ребята, опять нужна помощь по вставке элементов в двумерный динамический массив. А именно вставить рядок заполненный числами по указанному индексу. Как ни старался не получается, новый элемент заполняется но вставка не происходит, вот полный код: (много кода)
Кликните здесь для просмотра всего текста
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
#include<iostream>
#include<iomanip>
using namespace std;
 
int** CreateMatrix(int, int);
void FillMatrix(int** const, int, int);
void PrintMatrix(int** const, int, int);
void DeleteMatrix(int** &, int);
void AddRowInMatrix(int** &, int &, const int, int* &);
int** AddColToMatrix(int**, const int, int&, int*&);
int** DeleteRowMat(int** arr, int deletes, int &row);
int** DeleteColMat(int** arr, int deletess, int &col);
int** InsertEllement (int** arr, int &row, const int col, int* &insert_row, int index);
 
 
int* CreateArray(int);
void FillArray(int* const, int);
void PrintArray(int * const, int);
void DeleteArray(int* &);
 
int Menu();
 
int main() {
    setlocale(LC_CTYPE, "Ukrainian"); //Задаємо українську мову
    enum Operations{CreateDMatrix =1,FillDMatrix,PrintDMatrix,AddRowToDMatrix,AddColToDMatrix,DeleteDMatrix,DeletRM,DeletCM,AddInRow,Exit = 0};
 
    int row = 0, col = 0;
    int** arr = NULL;
    int* insert_arr = NULL;
    int* insert_row = NULL;
    int choice = -1;
    while (choice) {
        choice = Menu();
        switch (choice) {
 
        case CreateDMatrix:
            cout << "Введите столбцы и рядки: ";
            cin >> row >> col;
            arr = CreateMatrix(row, col);       
            break;
 
        case FillDMatrix:
            FillMatrix(arr, row, col);      
            break;
 
        case PrintDMatrix:
            PrintMatrix(arr, row, col);
            break;
 
        case AddRowToDMatrix:
            insert_arr = CreateArray(col);
            FillArray(insert_arr, col);
            cout << "\nРядок для добавления: ";
            PrintArray(insert_arr, col);
            AddRowInMatrix(arr, row, col, insert_arr);
            cout << "\nРядок добавлен\n";
            break;
 
        case AddColToDMatrix:
            insert_arr = CreateArray(row);
            FillArray(insert_arr, row);
            cout << "\Столбец для добавления: ";
            PrintArray(insert_arr, row);
            arr = AddColToMatrix(arr, row, col, insert_arr);
            cout << "\Столбец добавлен\n";
            break;
 
        case DeleteDMatrix:
            DeleteMatrix(arr, row);
            cout << "\nМатрица была удалена!\n";
            break;
 
        case DeletRM:
            int deletes;
            cout<<"Рядок ? ";
            cin>>deletes;
            arr=DeleteRowMat(arr,deletes,row);
            break;
 
        case DeletCM:
            int deletess;
            cout<<"Столбец ? ";
            cin>>deletess;
            arr=DeleteColMat(arr,deletess,col);
            break;
 
        case AddInRow:
            int index;
            cout<<" Индекс ? ";
            cin>>index;
                        insert_row = CreateArray(row);
            FillArray(insert_row, row);
            cout << "\Столбец для добавления: ";
            PrintArray(insert_row, row);
            InsertEllement (arr,row,col,insert_row,index);
            break;
 
        case Exit:
            cout << "Вы вышли из софта\n";
            break;
 
        default:
            cout << "Эмм, повторите еще раз!\n";
        }
    }
    return 0;
}
 
int** CreateMatrix(int row, int col) {
    int** arr = new int*[row];
    for (int i = 0; i < row; i++) {
        arr[i] = new int[col];
    }
    cout << "\n Весь мир это - Матрица, Вы создали только что еще одну! \n";
    return arr;
}
 
void FillMatrix(int** const arr, int row, int col) {
    if (arr) {
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                arr[i][j] = i * col + j;
            }
        }
        cout << "\n Матрица успешно заполнена! \n";
    } else {
        cout << "\n Вы еще не создали матрицу, мой господин!\n";
    }
}
 
void PrintMatrix(int** const arr, int row, int col) {
    cout << endl;
    if (arr) {
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                cout << setw(4) << arr[i][j];
            }
            cout << endl;
        }
    } else {
        cout << "\n Прошу, создайте матрицу\n";
    }
    cout << endl << endl;
}
 
void DeleteMatrix(int** &arr, int row) {
    for (int i = 0; i < row; i++) {
        delete[] arr[i];
    }
    delete[] arr;
    arr = NULL;
}
 
int** DeleteRowMat(int** arr, int deletes, int &row) {
    for (int i = deletes - 1; i < row - 1; i++) {
        arr[i] = arr[i + 1];
    }
    cout<<"Морфеус удалил один Рядок Матрицы!";
    row--;
    return arr;
}
 
int** DeleteColMat(int** arr, int deletess, int &col) {
    for (int i = deletess - 1; i < col - 1; i++) {
        arr[i] = arr[i + 1];
    }
    cout<<"Морфеус удалил один Столбец Матрицы!";
    col--;
    return arr;
}
 
int** InsertEllement (int** arr, int &row, const int col, int* &insert_row, int index) {
    int** newArray = CreateMatrix(row, col);
    for (int i = 0; i < index; ++i) 
        newArray[i] = arr[i];
    newArray[index] = insert_row;
    for (int i = index; i < row-1; ++i) 
        newArray[i+1] = arr[i]; 
    return newArray;
}
 
void AddRowInMatrix(int** &arr, int &row, const int col, int* &insert) {
    row++;
    int** tmp = CreateMatrix(row, col);
    for (int i = 0; i < row - 1; i++) {
        for (int j = 0; j < col; j++) {
            tmp[i][j] = arr[i][j];
        }
    }
 
    DeleteMatrix(arr, row - 1);
    for (int j = 0; j < col; j++) {
        tmp[row - 1][j] = insert[j];
    }
    DeleteArray(insert);
    arr = tmp;
}
 
 
int** AddColToMatrix(int** arr, const int row, int& col, int* &insert) {
    for (int i = 0; i < row; i++) {
        int *tmp = new int[col + 1];
        for (int j = 0; j < col; j++) {
            tmp[j] = arr[i][j];
        }
        tmp[col] = insert[i];
        delete[] arr[i];
        arr[i] = tmp;
    }
    DeleteArray(insert);
    col++;
    return arr;
}
 
 
int* CreateArray(int size) {
    int* arr = new int[size];
    return arr;
}
 
void FillArray(int* const arr, int size) {
    //if (arr) {
        for (int i = 0; i < size; i++) {
            arr[i] = i;
        }
    //} else {
    //  cout << "\n Весь мир сейчас рухнет, Быстрее создайте матрицу! \n";
    //}
}
 
void PrintArray(int * const arr, int size) {
    cout << endl;
    //if (arr) {
 
        for (int i = 0; i < size; i++) {
            cout << arr[i] << "  ";
        }
    //} else {
    //  cout << "Нео прими КРАСНУЮ ТАБЛЕТКУ!!!\n";
    //}
    cout << endl;
}
 
void DeleteArray(int* &arr) {
    delete[] arr;
    arr = NULL;
}
 
int Menu() {
    int choice;
    cout <<"\t.........::Выберите операцию::.........\n";
    cout <<"\t| ___________________________________ |\n";
    cout <<"\t| [1] - Нео создаст Матрицу          |\n";
    cout <<"\t| [2] - Заполнить Матрицу             |\n";
    cout <<"\t| [3] - Нео покажет Вам Матрицу        |\n";
    cout <<"\t| [4] - Дополнить Матрицу Рядком      |\n";
    cout <<"\t| [5] - Дополнить Матрицу Столбцем    |\n";
    cout <<"\t| [6] - Морфеус удалит Рядок         |\n";
    cout <<"\t| [7] - Морфеус удалит Столбец      |\n";
    cout <<"\t| [8] - Нео удалит Матрицу           |\n";
    cout <<"\t| [9] - Удалить Рядок по индексу     |\n";
    cout <<"\t| ___________________________________ |\n";
    cout <<"\t| [0] - Принять Синю Таблетку        |\n";
    cout <<"\t| ___________________________________ |\n";
    cout<<endl;
    cout<<"Введите номер операции : ";
    cin >> choice;
    return choice;
}


а вот тот самый код
C++
1
2
3
4
5
6
7
8
9
int** InsertEllement (int** arr, int &row, const int col, int* &insert_row, int index) {
    int** newArray = CreateMatrix(row, col);
    for (int i = 0; i < index; ++i) 
        newArray[i] = arr[i];
    newArray[index] = insert_row;
    for (int i = index; i < row-1; ++i) 
        newArray[i+1] = arr[i]; 
    return newArray;
}
Помогите пожалуйста с этим, все сам сделал а вот это никак понять не могу

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

Вставка нового элемента в массив (дополнить код)
Здравствуйте, нужна помощь. Суть такова имеется Куча, и туда нужно Вставить новый элемент, код...

Вставка нового элемента в массив
В одномерном массиве, элементы которого - целые числа, произвести следующие действия:Вставить...

Вставка элемента в одномерный динамический массив
Нужно добавить в массив один элемент. Процедура Add Место и значение элемента указываются. Что не...

Добавление нового элемента в двумерный массив.
Добрый день. Для одномерного все предельно ясно - присваиваешь и он запихивает в следующую...

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

Вставка нового элемента в упорядоченный массив (без нарушения упорядоченности)
Нужно вставить в упорядоченный по убыванию массив заданный элемент, чтобы не нарушилась...

Gcc вставка элемента в двумерный массив
Как вставить элемент в массив, заполненный random числами ? ms= 0 получается нечто другое... ...

Исправить код, использующий динамический двумерный массив
#include&lt;iostream&gt; #include&lt;time.h&gt; #include&lt;iomanip&gt; using namespace std; void main(){ ...

Динамический двумерный массив (получить адрес первого элемента первой строки)
есть двумерный массив ........ // объявление двумерного динамического массива int...

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