Андрей Макарычев
Мудрец
(10412)
14 лет назад
Попробую описать алгоритм, на С++ его реализуете сами.
Итак, двумерная матрица в программе представляется двумерным массивом. Здесь есть варианты реализации, самый простой из них - определить двумерный массив заведомо большей размерности (скажем 100*100), тогда как использоваться будут только первые несколько элементов из него (к примеру 5*10). Соответственно, действующий размер массива сохраняете в некоторой переменной.
При добавлении строки в i-тую позицию все предыдущие строки остаются на месте,
а все последующие сдвигаются на одну вниз. Сдвиг начинаем с последней строки: A[m,k]=A[m-1,k], m - номер изменяемой строки, изменяется от максимального количества строк до i, k - ячейка в строке, от 0 до (количество элементов в строке -1).
После заполняем i-ую строку требуемыми значениями или обнуляем (или еще чего, требуемое по условию). Таким образом, решение сводится к двум циклам, по строкам и внутри него по столбцам.
Для вставки столбца - тоже самое, только изменение пойдет по столбцам а не по строкам.