Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++ повернуть матрицу на 90 градусов в положительном направлении

Wait_tomorrow Профи (735), закрыт 13 лет назад
программу не требую, просто подскажите алгоритм, пожалуйста
Лучший ответ
Николай Веселуха Высший разум (380296) 13 лет назад
// Wait_tomorrow_2011-11-26
#include <iostream>
#include <ctime>
using namespace std;
#define N 3
#define M 5

void main()
{
srand((unsigned) time(NULL));

int a[N][M], b[N][M];

for (int n = 0; n < N; n++, cout << endl)
for (int m = 0; m < M; m++)
{
a[n][m] = 10 + rand() % 90;
cout << ' ' << a[n][m];
}

cout << "---------------" << endl;

for (int m = 0; m < M; m++, cout << endl)
for (int n = N - 1; n >= 0; n--)
{
b[n][m] = a[n][m];
cout << ' ' << b[n][m];
}

fflush(stdin);
cin.get();
}
Остальные ответы
dnikitaa Мастер (2483) 13 лет назад
запустить 2 цикла по столбцам матрицы.
Писать их в новую матрицу по строкам с инвертированием
Капитан Гугл Искусственный Интеллект (146251) 13 лет назад
"Положительное" - это по часовой? Создаешь новую матрицу и перебрасываешь в нее в цикле элементы, i,j-й исходной матрицы на (m-j),i-е место.
ra Высший разум (113319) 13 лет назад
Массив m размером NxN

#define C (N-1)

for (ii = 0; ii < (N / 2 + N % 2); ii++) {
for (jj = 0; jj < N / 2; jj++) {
int tmp = m[ii][jj];
m[ii][jj] = m[C - jj][ii];
m[C - jj][ii] = m[C - ii][C - jj];
m[C - ii][C - jj] = m[jj][C - ii];
m[jj][C - ii] = tmp;
}
}
Похожие вопросы