А401

Дана действительная квадратная матрица порядка [latex]n[/latex], натуральные числа [latex]i, j \left(1\leq i\leq n, 1\leq j\leq n \right)[/latex]. Из матрицы удалить [latex]i[/latex]-строку и [latex]j[/latex]-столбец.

[latex]n[/latex] Матрица. [latex]i[/latex] [latex]j[/latex] Полученная матрица. Комментарий.
3 1 2 3

4 5 6

7 8 9

2 1 2 3

8 9

Тест пройден.
4 0,5 1 6 0

3 8 12 0,3

10 4,6 8 9

0 3,5 6,4 10

4 3 0,5 1 0

3 8 0,3

10 4,6 9

Тест пройден.
2 -40 87

9 -3

1 1 -3 Тест пройден.

Код программы (C++):

Java:

 

Сначала пользователю предлагается ввести порядок матрицы, затем элементы этой матрицы. После чего, по условию задачи, пользователь должен задать [latex]i[/latex]-строку и [latex]j[/latex]-столбец, которые программа должна изъять из матрицы.

Протестировать программу можно здесь (C++) и здесь (Java).

Related Images:

7 thoughts on “А401

  1. Два замечания:
    1. Вы делаете два отдельных прохода по матрице — для удаления строки, потом для удаления столбца. Стоит объединить эти действия, чтобы не передвигать элементы массива дважды.
    2. Размер массива m не изменился. Просто Вы не используете последнюю строку и столбец. После «удаления» строки и столбца в массиве должно оказаться меньше строк и столбцов.

    А что если как-то так поступить?

    При этом нужно будет учесть, что двумерный динамический массив — массив строк (массив массивов). В нём можно быстро «удалять» целые строки.

    • Оба замечания учтены.

  2. Вообще-то на Java тоже есть форматированный вывод System.out.format (или то же самое System.out.printf). Наверное лучше их воспользоваться для улучшения визуального представления результирующей матрицы (как в Вашем C++ решении).
    В остальном замечаний нет.

Добавить комментарий