Как удалить определенную строку и столбец матрицы
Задача: вывести и решить минор матрицы по заданным индексам строки и столбца. С решением проблем не возникло, а вот как получить определенный минор? Как вычеркнуть определённые столбец и строку?
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Отдельным циклами сделать несложно
for (int i=0;i<row;i++) {
for (int j=0;j<col;j++)
B[i][j] = A[i][j];
for (int j=col+1;j<col_count;j++)
B[i][j-1] = A[i][j];
}
for (int i=row+1;i<row_count;i++) {
for (int j=0;j<col_count;j++)
B[i-1][j] = A[i][j];
for (int j=col+1;j<col_count;j++)
B[i-1][j-1] = A[i][j];
}
А можно по ходу дела индекс корректировать
for (int i=0;i<row_count;i++) {
rowshift = (i>row)?1:0;
for (int j=0;j<col;j++) {
colshift = (j>col)?1:0;
B[i-rowshift][j-colshift] = A[i][j];
}
}
Если в C++ логические выражения приводятся к int 0 и 1, то это можно прямо внутрь квадратных скобок вставить