Один из моих учеников спросил меня о такой домашней работе с массивами С++. Мне это показалось довольно интересным, поэтому, хотя я решил эту проблему, я хотел поделиться с вами своим решением и узнать другие варианты и мнения. Проблема следующая:
Проблема Дана двумерная динамическая квадратичная матрица (массив) A (nxn). Требуется повернуть массив на 90 градусов против часовой стрелки, т.е. После вращения. В поле [1,1] должно содержаться значение поля A [1, n] и A [1, n], которое должно содержать значение Анна]. И также требуется, чтобы при решении этой проблемы вы не должны использовать какой-либо другой массив.
Мое решение
Я сказал студенту сделать следующее (будет представлять шаги схематически):
Я предложил определить класс, который, как его член, будет иметь 2D-массив. И для определения операции, которая будет возвращать ссылку на элемент A [j, n + 1-i], когда пользователь запросит A [i, j] один. В двух словах я предложил создать оболочку для массива и манипулировать массивом через оболочку.