Добавление строк ручным способом в двумерные массивы - PullRequest
0 голосов
/ 07 декабря 2018

Пользователь вводит желаемое количество rows и columns, затем, если найдена какая-либо строка с четными числами, код должен добавить дублирующую строку под ней.Но вместо этого я не получил ответа.Нужна помощь.Мне нужно только добавить строки с помощью этого ручного метода.Я знаю, что их пути с векторами намного более устойчивыНо сейчас это единственный способ для меня.

#include "pch.h"
#include <iostream>

using namespace std;

int main()
{
int rows, columns;
std::cout << "Enter the number of rows: ";
std::cin >> rows;
std::cout << "Enter the number of columns: ";
std::cin >> columns;


//-----------------------Generating 2-D array---------------------------------------------------------
int **array = new int*[2 * rows]; // allocating memory for the array
for (int i = 0; i < rows; i++)
    array[i] = new int[columns];
//-----------------------Input Array Elements---------------------------------------------------------
std::cout << "Enter the elements" << std::endl;
for (int i = 0; i < columns; i++)
    for (int j = 0; j < rows; j++)
        std::cin >> array[i][j];
//--------------------Loop for the array output--------------------------------------------------------
for (int i = 0; i < columns; i++) {
    for (int j = 0; j < rows; j++) {
        std::cout << array[i][j] << " ";
    }
    std::cout << "\n";
}
//-------------------Loop for finding rows with even numbers And adding the clone rows----------------------------------------
for (int i = 0; i < columns; i++) {
    for (int j = 0; j < rows; j++) {
        if (array[i][j] % 2 == 0) {
            for (int k = rows; k > i; k--) {
                for (int j = 0; j < rows; j++) {
                    array[k][j] = array[k - 1][j];
                    ;
                }
            }
        }
        for (int j = 0; j < rows; j++)
            array[i + 1][j] = 0;
        i++;
        columns++;
    }
}

std::cout << "\n";
//--------------------Loop for the answer OUTPUT--------------------------
for (int i = 0; i < columns; i++) {
    for (int j = 0; j < rows; j++) {
        std::cout << array[i][j] << " ";
}
std::cout << "\n";
}

return 0;
}

Например, если мы введем массив
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
Ответ должен быть
1 1 1 1 1
2 2 2 2 2 -------> чётный
2 2 2 2 2 --------> Дубликат
3 3 3 3 3
4 4 4 4 4 ---------> Четный
4 4 4 44 ----------> клон
5 5 5 5 5

...