Удалить из матрицы строку и столбец - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задача такова: реализуйте следующее преобразование двумерной матрицы: при передаче в выходную матрицу их исходной изымают мы строка и столбец с заданными номерами, как при вычислении определителя.

Решение задачи: «Удалить из матрицы строку и столбец»

textual
Листинг программы
#include <stdio.h>
 
#define N 3
 
int input_matrix[N][N] = {
    { 1, 2, 3 },
    { 4, 5, 6 },
    { 7, 8, 9 }
};
 
int output_matrix[N - 1][N - 1];
 
void delete_line_and_column(int line, int column)
{
    int x = 0;
    for( int i = 0; i < N; ++i ) {
        int y = 0;
        if( i != line ) {
            for( int j = 0; j < N; ++j ) {
                if( j != column ) {
                    output_matrix[x][y] = input_matrix[i][j];
                    ++y;
                }
            }
            ++x;
        }
    }
}
 
int main(void)
{
    delete_line_and_column(1, 1);
    for( int i = 0; i < N - 1; ++i ) {
        for( int j = 0; j < N - 1; ++j ) {
            printf("matrix[%d][%d] = %d\n", i, j, output_matrix[i][j]);
        }
    }
    
    return 0;
}

Объяснение кода листинга программы

В этом коде удаляется указанная строка и столбец из матрицы. Список действий:

  1. Создаётся матрица размером N на N, заполненная значениями.
  2. Создаётся матрица output_matrix размером N-1 на N-1, которая будет использоваться для хранения матрицы после удаления строки и столбца.
  3. В функции delete_line_and_column() происходит итерация по элементам матрицы input_matrix.
  4. Если номер строки не равен указанной для удаления, то происходит итерация по элементам этой строки.
  5. Если номер столбца не равен указанному для удаления, то элемент копируется в output_matrix.
  6. После завершения всех итераций, в output_matrix содержится матрица, в которой удалена указанная строка и столбец.
  7. В функции main() вызывается функция delete_line_and_column() с указанными номерами строки и столбца.
  8. Выводится на экран полученная матрица.
  9. Функция main() возвращает 0, что означает успешное завершение работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы