-Цитата от Ридл Гатофель
-Цитата от иксуй!
-Цитата от Трэй
дана квадратная матрица.повернуть матрицу на 90 градусов по часовой стрелке
помогите, пожалуйста, хотя бы с алгоритмом.программу уж сам напишу
Мои размышления
1.через div 2 найти до какой строки делать цикл
2.начать перемещать строки и столбцы
верхнюю строку ставить на место последнего столбца, а нижнюю строку на место первого столбца.потом внутри тоже самое
есть ли вариант легче?
Чисто из любопытства сделал сейчас, одномерного массива хватило для решения за квадрат.
Код:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <string.h>
#include <math.h>
#include <conio.h>
#include <vector>
#include <map>
#include <set>
using namespace std;
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
int n,nn;
scanf("%d",&n);
nn=n*n;
const unsigned int size=nn;
int matrix[size];
for(int i=1;i<=nn;i++)
{
scanf("%d",&matrix[i]);
}
for(int curr=n;curr>0;curr--)
{
for(int j=curr;j<=nn;j+=n)
{
printf("%d ",matrix[nn-j+1]);
}
putchar('\n');
}
return 0;
}
Чё-то я нихуя не понял

выводим снизу вверх сперва первый столбец исходной матрицы, затем второй столбец, затем третий и так до n-го столбца.
вот у нас матрица есть:
1 2 3
4 5 6
7 8 9
последний элемент в ней с номером N^2;
а нам нужно выводить первый элемент каждой строки сперва, затем второй элемент каждой строки и т.д.
чтобы вывести первый элемент последней строки нужно из N^2 вычесть длину строки/столбца матрицы + 1. затем удвоенную длину строки, затем утроенную...
после того как первая строка сформировалась длина исходной фактически уменьшилась на 1, так как первый столбик больше не нужен. и так далее.