Как удалить определенную строку и столбец матрицы

Задача: вывести и решить минор матрицы по заданным индексам строки и столбца. С решением проблем не возникло, а вот как получить определенный минор? Как вычеркнуть определённые столбец и строку?


Ответы (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, то это можно прямо внутрь квадратных скобок вставить

→ Ссылка