Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2007, 22:36   #1
Guest_
Пользователь
 
Регистрация: 01.02.2007
Сообщений: 11
По умолчанию Поворот двумерного массива

Дана квадратная матрица. Hужно переместить числа так, чтобы эта операция была эквивалентна повороту массива на 90 градусов по часовой стрелке
никак зависимость не могу найти
Guest_ вне форума Ответить с цитированием
Старый 24.12.2007, 02:03   #2
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
По умолчанию

По моему вот так (если я правильно понял)

Код:
int A[m][n];
// заполнение А
// ...
int B[m][n];

for(int k = 0; k < m; k++)
    for(int i = 0; i < n; i ++) B[k][i] = A[i][k];
в результате B будет искомой матрицей. Кстати такая матрица называется транспонированной
ввел пароль, который мне не известен

Последний раз редактировалось itisiam; 24.12.2007 в 23:07.
itisiam вне форума Ответить с цитированием
Старый 24.12.2007, 08:57   #3
Guest_
Пользователь
 
Регистрация: 01.02.2007
Сообщений: 11
По умолчанию

спасибо, но это не совсем то!
напр. дана матрица 3х3:
1 2 3
4 5 6
7 8 9

должно получиться:
7 4 1
8 5 2
9 6 3
Guest_ вне форума Ответить с цитированием
Старый 24.12.2007, 10:34   #4
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

Если 3*3, то N == 3-1 == 2:

Arr[i][j] => Arr[j][N-i]
Alek86 вне форума Ответить с цитированием
Старый 24.12.2007, 19:51   #5
graphoman
 
Регистрация: 23.12.2007
Сообщений: 3
По умолчанию

Я бы предложил вот что:
Сначала транспонировать матрицу, заменив все строки соответствующими по номера столбцами, а затем, в транспонированной матрице каждую строку отобразить зеркально, т.е

a[i][j]=a[i][N-j+1]
graphoman вне форума Ответить с цитированием
Старый 24.12.2007, 20:31   #6
Guest_
Пользователь
 
Регистрация: 01.02.2007
Сообщений: 11
По умолчанию

ВСЕМ ОГРОМНОЕ СПАСИБО
Guest_ вне форума Ответить с цитированием
Старый 24.12.2007, 23:02   #7
itisiam
аккаунт недоступен
Форумчанин
 
Регистрация: 23.01.2007
Сообщений: 107
По умолчанию

Цитата:
Я бы предложил вот что:
Сначала транспонировать матрицу, заменив все строки соответствующими по номера столбцами, а затем, в транспонированной матрице каждую строку отобразить зеркально
Все проще - надо просто в цикле изменить возрастание величины k на убывание, или вроде того (мне лень проверять)
ввел пароль, который мне не известен
itisiam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод двумерного массива Kocapb Общие вопросы C/C++ 4 11.10.2012 11:05
Сортировка двумерного массива Makarov Помощь студентам 8 29.10.2011 11:55
[Delphi] создание и обработка двумерного массива screep Помощь студентам 5 16.06.2008 19:27
написать программу обработки двумерного массива Miushka Паскаль, Turbo Pascal, PascalABC.NET 5 05.02.2008 23:32
сортировка двумерного массива cornholio Помощь студентам 1 27.11.2007 23:36