Показать сообщение отдельно
иксуй!
Аватар для иксуй!
Сообщения: 9,556
Регистрация: 23.11.2007
Старый пост, нажмите что бы добавить к себе блог 6 мая 2011, 23:40
  #1248 (ПС)
-Цитата от Трэй Посмотреть сообщение
дана квадратная матрица.повернуть матрицу на 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;
}


Последний раз редактировалось иксуй!, 6 мая 2011 в 23:54.
offline
Ответить с цитированием