Вставить элемент в определенную позицию в программировании матрицы C ++ - PullRequest
0 голосов
/ 20 мая 2018

В настоящее время я делаю Matric в C ++, я хочу создать матрицу, которая может хранить non_zero_elements.Что я хочу сделать, это вставить элемент в определенную позицию и затем распечатать его матрицу с non_zero_element и zero_element.Это моя инициализированная матрица:

int A[4][4] =
{
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 }
};

Ниже приведены мои коды

void SM::readElement(int row, int column, int value)
{
    m = row;
    n = column;

    for (int i = 0; i < m; i++) {
        cout << "\t\t";
        for (int j = 0; j < n; j++) {
            if (i == row && j == column)
            {           
                A[i][j] = value;
            }
        }
    }
}

void  SM::printMatrix()
{

    for (i = 0; i < 4; i++)
    {
        cout << "\n";
        for (j = 0; j < 4; j++)
            cout << A[i][j];
    }
}

Драйвер:

    int main()
    {
        SM sm;

        int choice, column, row, value;

        do {
            sm.Menu();
            cin >> choice;
            switch (choice)
            {
            case 1:
                do
                {
                    cout << "Enter row -> ";
                    cin >> row;
                } while (row < 0 || row >= 11);

                do
                {
                    cout << "Enter column -> ";
                    cin >> column;
                } while (column < 0 || column >= 11);

                do {
                    cout << "Enter value -> ";
                    cin >> value;
                } while (value <= 0);

                sm.readElement(row, column, value);

}

Я хочу прочитать элементы и вставить их вконкретную строку и столбец и распечатать всю матрицу с обновленной матрицей после вставки элемента.Мне нужно, чтобы кто-то указал на ошибки.Большое спасибо.

Input row = 2
Input column = 2
Input value = 5

Реальный вывод:

int A [4][4] = 
{
{ 5 , 5 , 0 , 0 },
{ 5 , 5 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 }
};

Ожидаемый вывод:

int A [4][4] = 
{
{ 0 , 0 , 0 , 0 },
{ 0 , 5 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 }
};

И я обнаружил, что мои коды не будут принимать строку / столбец= 0, только начиная со строки / столбца> = 1.

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Чтобы вставить элемент, скажем, значение int , в положение [строка, столбец] матрицы A достаточно сделать

A[row][column] = value;

Чтобы напечатать новыйматрица просто вызывает функцию printMatrix (), которую вы написали после вставки

0 голосов
/ 20 мая 2018
int A[4][4] =
{
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 },
{ 0 , 0 , 0 , 0 }
};

- правильный синтаксис для объявления и инициализации 2d-массива.Вы, вероятно, должны использовать векторы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...