@denywho
Начинающий программист

Как сделать нормально вставку в двумерном массиве?

#include <iostream>
#include <time.h>
#include <cstdlib>
#include <iomanip>
using namespace std;

//Создать массив целых чисел из диапазона [-5;10]. 
//Вставить в массив: 4 строку перед второй строкой.

int main()
{
    setlocale(LC_ALL, "Russia");
    int n, i, m, j, nomst, nom;
    cout << "Сколько строк в массиве? - ";
    cin >> n;
    while (n < 4)
    {
        cout << "Количество строк массива не может быть < 4, повторите ввод: ";
        cin >> n;
    }
    cout << "Сколько столбцов в массиве? - ";
    cin >> m;
    while (m < 1)
    {
        cout << "Количество столбцов массива не может быть < 1, повторите ввод: ";
        cin >> m;
    }
    int** A = new int* [n + 1];
    for (i = 0; i < n + 1; i++)
        A[i] = new int[m];
        cout << "Исходный массив\n";
        srand(time(0));
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < m; j++)
            {
                A[i][j] = rand() % 16 - 5;
                cout << setw(2) << A[i][j] << "\t";
            }
            cout << "\n";
        }
        cout << "Вставка в массив: 4 строка перед второй строкой:\n";
        int* B = new int[m];
        nomst = 3;
        for (j = 0; j < m; j++)
            B[j] = A[nomst][j];
        nom = 0;
        for (i = n; i > nom; i--)
            for (j = 0; j < m; j++)
                A[i][j] = A[i - 1][j];
        for (j = 0; j < m; j++)
            A[nom + 1][j] = B[j];
        for (i = 0; i < n + 1; i++)
        {
            for (j = 0; j < m; j++)
            {
                cout << setw(2) << A[i][j] << "\t";
            }
            cout << "\n";
        }
    for (i = 0; i < n+1; i++)
        delete[] A[i];
    delete[] A;
    return 0;
}

5fb6afbe087e7078609625.png
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
scottparker
@scottparker
Странно почему он у вас здесь не ругнулся
A[i][j] = A[i - 1][j];

и что это за расширение массива А намечается?)
когда в конце цикл для вывода массива от 0 до n+1 уже)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы