Введіть елементи матриці m x n. Напишіть програму, яка для даного цілого числа k Î (-n; n):
а) Поверніть матрицю сітки елементів (при додатному k переміщує елементи в кожному рядку праворуч від сіток стовпців, при негативному вліво, при k = 0 елементи залишаються на місці), а останній елемент рухається праворуч на один перемістить цей елемент у перше положення певної лінії (аналогічно при переміщенні першого елемента вліво).
в) Змінює всі елементи вихідної матриці, що діляться на вказане число k, на 0 (скидає їх).
ВХІД:
- вхідні змінні: k, m, n, A [MAX] [MAX]
- умова введення: 1 = 0
B [i] [j + k] = A [i] [j]
Інакше
B [i] [k + j + n] = A [i] [j]
C:
a/k! = 0: якщо A [i] [j]% k) == 0
C [i] [j] = 0
Інакше
C [i] [j] = A [i] [j]
b/k = 0: не друкує матрицю C
По суті, ця програма дуже цікава, принаймні для мене. Завантажити окремі змінні, а також елементи матриці, де я використовував функцію, відносно легко, тому повернутися до цього вже не можна. Під час обчислення самої вихідної матриці я дотримувався порівняно простого математичного аналізу та порівняння введеного числа k та кількості стовпців матриці. Перш за все, я перевірив число k проти 0. Якщо k більше 0, то мені довелося використовувати інший блок прийняття рішень, щоб перевірити суму чисел k та j (j поточне положення стовпця матриці). Ця сума повинна бути менше загальної кількості стовпців у масиві. Потім я просто почав призначати елементи матриці A елементу матриці B, але з тим, що я також додав значення числа k до поточного стовпця матриці B. (наприклад: j + k => 1 + 2 ). Якщо сума k + j була більшою або дорівнює кількості стовпців матриці, то кожному елементу матриці B присвоювався елемент матриці A, але з тією різницею, що він додав значення k до поточного стовпця матриці Б. відняли загальну кількість стовпців матриці А. зсуву праворуч.
Якщо значення числа k дорівнює 0, то кожному елементу матриці B буде присвоєно елемент матриці A точно такому ж положенню.