Удалить из матрицы строку и столбец - 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; }
Объяснение кода листинга программы
В этом коде удаляется указанная строка и столбец из матрицы. Список действий:
- Создаётся матрица размером N на N, заполненная значениями.
- Создаётся матрица output_matrix размером N-1 на N-1, которая будет использоваться для хранения матрицы после удаления строки и столбца.
- В функции delete_line_and_column() происходит итерация по элементам матрицы input_matrix.
- Если номер строки не равен указанной для удаления, то происходит итерация по элементам этой строки.
- Если номер столбца не равен указанному для удаления, то элемент копируется в output_matrix.
- После завершения всех итераций, в output_matrix содержится матрица, в которой удалена указанная строка и столбец.
- В функции main() вызывается функция delete_line_and_column() с указанными номерами строки и столбца.
- Выводится на экран полученная матрица.
- Функция main() возвращает 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д