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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Just_2D
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 22
#1

Добавление элементов в динамический двумерный массив - C++

20.03.2013, 22:41. Просмотров 1859. Ответов 5
Метки нет (Все метки)

Помогите пожалуйста, не могу понять в чем ошибка.
Функция должна добавлять в массив столбец после столбца в котором находится наибольший элемент.

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
void arr_2d_manipulation(int** &a, int n, int &m)
{
    int i_max = 0, j_max = 0;
    for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
            if(a[i][j] > a[i_max][j_max])
            {
                i_max = i;
                j_max = j;
            };
 
    m += 1;
    int **tmp = new int * [n];
    for(int i=0; i<n; i++)
        tmp[i] = new int[m];
 
    for(int i=0; i<n; i++)
        for(int j=0; j<=j_max; j++)
            tmp[i][j] = a[i][j];
    for(int i=0; i<n; i++)
        tmp[i][j_max+1] = 1+rand()%9;
    for(int i=0; i<n; i++)
        for(int j=j_max+2; j<m; j++)
            tmp[i][j] = a[i][j-1];
 
    for(int i=0; i<n; i++)
        delete [] a[i];
    delete [] a;
    a = tmp;
}
При компиляции, появляется такая ошибка.
Миниатюры
Добавление элементов в динамический двумерный массив  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 22:41     Добавление элементов в динамический двумерный массив
Посмотрите здесь:

Добавление строки в двумерный динамический массив (исправить ошибки) - C++
Выкладываю лаб. Помогите исправить ошибки в функции с добавлением строки в двумерный динамический массив , уже противно смотреть эту на...

Динамический двумерный массив: найти наибольший из нименьших элементов строк - C++
здравствуйте! пишу первый раз, не знаю точно, к С или С++ относится вопрос (п.ч. там нет объектов), я учусь на 2 курсе, нам задали написать...

Двумерный динамический массив. Все нечетные строки матрицы сдвинуть циклически на К элементов влево - C++
Помогите пожалуйста нужно нужно создать двумерный динамический массив и все нечетные строки матрицы сдвинуть циклически на К элементов...

Класс "динамический массив" - добавление и удаление элементов в рантайме - C++
#ifndef ARRAY// if not defined #define ARRAY Class ARRAY{ Public ARRAY(); ~ ARRAY(); Void push_back (int...

Реализовать двумерный динамический треугольный массив. Количество строк и сами элементы вводит пользователь. Количество элементов в строке рассчитывае - C++
Реализовать двумерный динамический треугольный массив. Количество строк и сами элементы вводит пользователь. Количество элементов в строке...

Двумерный динамический массив - C++
Здравствуйте, подскажите пожалуйста где ошибка? реализовал 2 фукнции ввода и вывода массива. #include &lt;iostream&gt; #include &lt;windows.h&gt; ...

Двумерный динамический массив - C++
Выскакивает ошибка Ошибка C2440 =: невозможно преобразовать &quot;int *&quot; в &quot;int **&quot; ConsoleApplication5 Из-за этого не выполняются...

Двумерный динамический массив - C++
Здравствуйте, задание такое: &quot;Описать двумерный массив R целых чисел, размерностью NхM элементов, заполнять массив случайными числами по...

Двумерный Динамический массив - C++
Здравствуйте, такая проблема: не могу задать int** и char**...проблема в том что в функцию передются их размеры , но они не константы и...

Двумерный динамический массив - C++
Необходимо ввести с клавиатуры количество строк и столбцов массива(матрица размером N*M), ввести исходные данные. Удалить столбец матрицы,...

Двумерный массив (поменять статический массив на динамический) - C++
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; ...

Динамический двумерный массив в функцию. - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;time.h&gt; using namespace std; void razmerimassiva(int...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
20.03.2013, 23:07     Добавление элементов в динамический двумерный массив #2
Давайте остальной код.
Just_2D
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 22
20.03.2013, 23:22  [ТС]     Добавление элементов в динамический двумерный массив #3
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
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <iomanip>
 
using namespace std;
 
void arr_input(int *a, int n);
void arr_output(int *a, int n);
void arr_1D(int* &a, int &n);
 
 
void arr_2d_input(int **a, int n, int m);
void arr_2d_output(int **a, int n, int m);
void arr_2d_manipulation(int** &a, int n, int &m);
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    cout << "Завдання 1." << endl;
    cout << "Знищити всi елементи з непарними iндексами." << endl;
    int n;
    cout << "Введiть кiлькiсть елементiв в масивi: ";
    cin >> n;
    static int *a = new int[n];
    arr_input(a, n);
    cout << "Отриманий масив: " << endl;
    arr_output(a, n);
    cout << endl;
    cout << "Масив пiсля обробки: " << endl;
    arr_1D(a, n);
    arr_output(a, n);
 
 
    cout << "\n\nЗавдання 2." << endl;
    cout << "Додати стовпчик пiсля стовпчика, що мiстить найбiльший елемент." << endl;
    cin >> n;
    int **arr_2d = new int * [n];
    int m;
    cin >> m;
    for(int i=0; i<n; i++)
        arr_2d[i] = new int[m];
    arr_2d_input(arr_2d, n, m);
    arr_2d_output(arr_2d, n, m);
    arr_2d_manipulation(arr_2d, n, m);
    cout << endl << endl;
    arr_2d_output(arr_2d, n, m);
 
 
    return 0;
}
 
 
void arr_input(int *a, int n)
{
    srand((unsigned int)time(NULL));
    for(int i=0; i<n; i++)
        a[i] = 1+rand()%500;
}
 
 
void arr_output(int *a, int n)
{
    for(int i=0; i<n; i++)
        cout << "a[" << i << "]=" << a[i] << ' ';
}
 
 
void arr_1D(int* &a, int &n)
{
    int cnt;
    cnt = n/2;
    int *b = new int[n-cnt];
    int i_b = 0;
    for(int i=0; i<n; i++)
        if (i%2 == 0)
        {
            b[i_b] = a[i];
            i_b++;
        }
        n -= cnt;
        delete[] a;
        a = b;
}
 
 
 
 
void arr_2d_input(int **a, int n, int m)
{
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
            a[i][j] = 1 + rand()%500;
}
void arr_2d_output(int **a, int n, int m)
{
    cout << setw(4);
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)
            cout << a[i][j] << setw(4);
        cout << endl;
    }
}
 
void arr_2d_manipulation(int** &a, int n, int &m)
{
    int i_max = 0, j_max = 0;
    for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
            if(a[i][j] > a[i_max][j_max])
            {
                i_max = i;
                j_max = j;
            };
 
    m += 1;
    int **tmp = new int * [n];
    for(int i=0; i<n; i++)
        tmp[i] = new int[m];
 
    for(int i=0; i<n; i++)
        for(int j=0; j<=j_max; j++)
            tmp[i][j] = a[i][j];
    for(int i=0; i<n; i++)
        tmp[i][j_max+1] = 1+rand()%9;
    for(int i=0; i<n; i++)
        for(int j=j_max+2; j<m; j++)
            tmp[i][j] = a[i][j-1];
 
    for(int i=0; i<n; i++)
        delete [] a[i];
    delete [] a;
    a = tmp;
}
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
21.03.2013, 00:01     Добавление элементов в динамический двумерный массив #4
C++
1
2
3
4
void arr_2d_input(int **a, int n, int m) {
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            a[i][j] = 1 + rand() % 500;
Добавлено через 1 минуту
ошибка во внутреннем цикле (было n вместо m)
Just_2D
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 22
21.03.2013, 00:05  [ТС]     Добавление элементов в динамический двумерный массив #5
Я понял уже)
Обидно, несколько часов сидел не мог понять. Спасибо
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.03.2013, 00:07     Добавление элементов в динамический двумерный массив #6
освойте дебагер и не будете тратить часы на поиск ошибок методом пристального взгляда.
Yandex
Объявления
21.03.2013, 00:07     Добавление элементов в динамический двумерный массив
Ответ Создать тему
Опции темы

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