В настоящее время я делаю 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.