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

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

Войти
Регистрация
Восстановить пароль
 
Jman
43 / 43 / 10
Регистрация: 11.10.2015
Сообщений: 427
Завершенные тесты: 2
#1

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

08.07.2016, 14:06. Просмотров 428. Ответов 3
Метки нет (Все метки)

Что я делаю не так? Хочу с клавиатуры вводить размерность двумерного динамического массива, вылетает в исключение в VS или выводит что нужно, но потом происходит остановка, ка буд-то не удаляет..
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
int cols(NULL);
    int rows(NULL);
    
    //выделение памяти для двумерного массива
    int **ptrarray = new int*[cols];
    for (int count = 0; count < cols; count++)
        ptrarray[count] = new int[rows];
    cout << "Введите размер столбцов ->" << endl;
    cin >> cols;
    cout << "Введите размер строк ->" << endl;
    cin >> rows;
    for (int count_row = 0; count_row < cols; count_row++)
        for (int count_column = 0; count_column < rows; count_column++)
            ptrarray[count_row][count_column] = rand() % 41 + (-20);
 
    for (int count_row = 0; count_row < cols; count_row++)
    {
        for (int count_column = 0; count_column < rows; count_column++)
            cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << "   ";
        cout << endl;
    }
    // удаление двумерного динамического массива
    for (int count = 0; count < cols; count++)
        delete[] ptrarray[count];
        delete[] ptrarray;
Добавлено через 1 минуту
Ой, вроде разобрался =)
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
int cols;
    int rows;
    cout << "Введите размер столбцов ->" << endl;
    cin >> cols;
    cout << "Введите размер строк ->" << endl;
    cin >> rows;
    //выделение памяти для двумерного массива
    int **ptrarray = new int*[cols];
    for (int count = 0; count < cols; count++)
        ptrarray[count] = new int[rows];
    for (int count_row = 0; count_row < cols; count_row++)
        for (int count_column = 0; count_column < rows; count_column++)
            ptrarray[count_row][count_column] = rand() % 41 + (-20);
 
    for (int count_row = 0; count_row < cols; count_row++)
    {
        for (int count_column = 0; count_column < rows; count_column++)
            cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << "   ";
        cout << endl;
    }
    // удаление двумерного динамического массива
    for (int count = 0; count < cols; count++)
        delete[] ptrarray[count];
        delete[] ptrarray;
Правильно-ли вообще я делаю? Так заработало.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2016, 14:06     Двумерный динамический массив. Ввод размера с клавиатуры
Посмотрите здесь:

Двумерный динамический массив размера NxM - C++
Создайте двумерный динамический массив размера NxM.Выделите для него и освободите память.

Создать двумерный динамический массив заданного пользователем размера - C++
Нужно создать массив (ну пусть М). Вот как объявить этот массив, чтобы пользователь затем сам вводил эти х и а?

Ввод данных в двумерный динамический массив - C++
Добрый вечер! Осваиваю уже третий день двумерные массивы в С++, но каким образом они создаются до сих пор не понятно. У меня было...

Динамический ввод и вывод данных в двумерный массив - C++
Не могу реализовать ввод и вывод данных двумерного массива используя указатель на указатель, в чём проблема? cin &gt;&gt; *(*(p+n*i)+j); ...

Динамический массив. Ввод размерности с клавиатуры - C++
Вечер добрый. Прошу помощи у Вас. Суть просьбы : создать динамический массив(квадрат) с размерностью n, n (вводится с клавиатуры)....

Создать двумерный массив размера, вводимого с клавиатуры - C++
Требуется создать двумерный массив размера,вводимого с клавиатуры. Одномерный у меня получился,а вот двумерный как сделать? int n; //...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Scorpius_
49 / 49 / 24
Регистрация: 01.04.2015
Сообщений: 103
08.07.2016, 14:08     Двумерный динамический массив. Ввод размера с клавиатуры #2
Сначала необходимо задать размерность массива, а потом уже выделять память.
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
int cols(NULL);
    int rows(NULL);
    
    cout << "Введите размер столбцов ->" << endl;
    cin >> cols;
    cout << "Введите размер строк ->" << endl;
    cin >> rows;
 
    //выделение памяти для двумерного массива
    int **ptrarray = new int*[cols];
    for (int count = 0; count < cols; count++)
        ptrarray[count] = new int[rows];
    for (int count_row = 0; count_row < cols; count_row++)
        for (int count_column = 0; count_column < rows; count_column++)
            ptrarray[count_row][count_column] = rand() % 41 + (-20);
 
    for (int count_row = 0; count_row < cols; count_row++)
    {
        for (int count_column = 0; count_column < rows; count_column++)
            cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << "   ";
        cout << endl;
    }
    // удаление двумерного динамического массива
    for (int count = 0; count < cols; count++)
        delete[] ptrarray[count];
        delete[] ptrarray;
Jman
43 / 43 / 10
Регистрация: 11.10.2015
Сообщений: 427
Завершенные тесты: 2
08.07.2016, 14:13  [ТС]     Двумерный динамический массив. Ввод размера с клавиатуры #3
Когда идет заполнение рандомно, мы заполняем первым for столбцы, а вторым for строки?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2016, 14:40     Двумерный динамический массив. Ввод размера с клавиатуры
Еще ссылки по теме:

Ввод чисел в массив, без заданного размера с клавиатуры - C++
#include &lt;iostream&gt; using namespace std; int main () { int a= {ЗДЕСЬ ДОЛЖНЫ БЫТЬ ВВОДИМЫЕ С КЛАВИАТУРЫ ПО ЦИКЛУ for числа} ...

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

Как ввести двумерный массив с клавиатуры? Его размерность [n][m] нужно задавать с клавиатуры. - C++
Привет всем. Как ввести двумерный массив с клавиатуры? Его размерность нужно задавать с клавиатуры.

Динамический массив без размера - C++
День добрый, сразу к делу: Создаю я значит массив, а размер не указываю, одной кнопочкой добавляю элемент в массив, другой вывожу в memo,...

Динамический массив произвольного размера - C++
динамический массив заданного размера: int *massiv = new int а как организовать произвольного размера? спасибо.

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


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

Или воспользуйтесь поиском по форуму:
_Scorpius_
49 / 49 / 24
Регистрация: 01.04.2015
Сообщений: 103
08.07.2016, 14:40     Двумерный динамический массив. Ввод размера с клавиатуры #4
Циклы вложенные, первый цикл перебирает строки, а второй цикл элементы строки (столбцы).
Yandex
Объявления
08.07.2016, 14:40     Двумерный динамический массив. Ввод размера с клавиатуры
Ответ Создать тему
Опции темы

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