Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2017, 17:07   #1
anasttb
Пользователь
 
Регистрация: 24.02.2017
Сообщений: 32
По умолчанию Необходимо добавить столбец в указанное пользователем место в матрице. Записывая результат в другую матрицу.

[CODE]:
#include "stdafx.h"
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
setlocale(0, "");
srand(unsigned(time(NULL)));
int N, M;
cout<<"Введите размер двумерного массива."<<endl;
cout<<"Строки: ";
cin >> N ;
cout<<"Столбцы: ";
cin >> M;
int ** A = new int * [N];
for (int i = 0; i < N; i++)
A [i] = new int [M];

for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
A [i][j] = ((rand() % 10));


cout <<endl<< "Полученная матрица:" << endl << endl;
for (int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
cout << A[i][j] << " ";
cout << endl;
}
int num;
cout<<endl<<"Введите номер для вставки столбца: ";
cin>>num;
for (int i = 0; i < N; i++)
{
for(int j = 0; j < num-1; j++)

cout << A[i][j] << " ";
cout << endl;

}


system ("pause");

}
anasttb вне форума Ответить с цитированием
Старый 28.05.2017, 10:06   #2
Ponch_Begginer
Пользователь
 
Регистрация: 04.01.2015
Сообщений: 71
По умолчанию

Вот в общем разбирайся.
Код:
#include <iostream>
#include <cassert>

using namespace std;

int** createMatrix(size_t count_row, size_t count_column)
{
    assert(count_row != 0 && count_column != 0);
    int** retMat = new int* [count_row];
    for (size_t i(0); i < count_row; ++i){
        retMat[i] = new int[count_column];

        for (size_t j(0); j < count_column; ++j)
            retMat[i][j] = 0;
    }

    return retMat;
}

void deleteMatrix(int** matrix, size_t count_row)
{
    for (size_t i(0); i < count_row; ++i)
        delete [] matrix[i];
    delete [] matrix;
    matrix = nullptr;
}

void printMatrix(int** matrix, size_t count_row, size_t count_column)
{
    for (size_t i(0); i < count_row; ++i){
        for (size_t j(0); j < count_column; ++j)
            cout << matrix[i][j] << " ";
        cout << endl;
    }
}

int** insertRowInMatrix(int** matrix, size_t count_row, size_t count_column,size_t insert_pos)
{
    assert(insert_pos < count_column);

   auto resMatrix = createMatrix(count_row, count_column);

    for (size_t i(0); i < count_row; ++i)
    {
        for (size_t j(0); j < count_column; ++j)
        {
            if (j == insert_pos)
                cin >> resMatrix[i][j];
            else
                resMatrix[i][j] = matrix[i][j];
        }
    }
    return resMatrix;
}

int main()
{
    size_t cRow = 5, cCol = 10;
    int ** matrix = createMatrix(cRow, cCol);

    printMatrix(matrix, cRow, cCol);

    auto nMatrix = insertRowInMatrix(matrix, cRow, cCol, 12);

    printMatrix(nMatrix, cRow, cCol);

    deleteMatrix(nMatrix, cRow);
    deleteMatrix(matrix, cRow);
    return 0;
}
Ponch_Begginer вне форума Ответить с цитированием
Старый 28.05.2017, 10:17   #3
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Так колонну же надо впихнуть?
Cuprum5 вне форума Ответить с цитированием
Старый 28.05.2017, 10:20   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

insertRowInMatrix() - так вот эта функция просто заменяет столбец новыми значениями, я подумал что нужно столбец впихнуть.
Cuprum5 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двусвязный список, добавление в указанное место Ayir Общие вопросы C/C++ 9 18.09.2015 18:59
Добавить столбец в матрицу Harrison0077 C# (си шарп) 1 06.10.2014 12:03
заданной прямоугольной матрице поставить на первое место столбец с наименьшим количеством нулевых элементов (Паскаль, Фортран) HuBuDuMkA Помощь студентам 0 21.12.2011 22:37
Таймер меняет панели местами, в указанное пользователем время. 1eHuH Общие вопросы Delphi 3 03.02.2011 00:17
Переод каретки в указанное место в RE MyLastHit Общие вопросы Delphi 8 08.08.2010 20:49