Другие языки программирования и технологии
C++ повернуть матрицу на 90 градусов в положительном направлении
программу не требую, просто подскажите алгоритм, пожалуйста
// 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();
}
#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();
}
"Положительное" - это по часовой? Создаешь новую матрицу и перебрасываешь в нее в цикле элементы, i,j-й исходной матрицы на (m-j),i-е место.
Массив 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;
}
}
#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;
}
}
запустить 2 цикла по столбцам матрицы.
Писать их в новую матрицу по строкам с инвертированием
Писать их в новую матрицу по строкам с инвертированием
Похожие вопросы
- Как повернуть матрицу на 90 градусов с++?
- Как в Adobe Photoshop CS3 повернуть лист на 90 градусов.
- программа в Паскале. осуществить поворот матрицы против часовой стрелки на 90 градусов
- Поворот массива на 90 градусов в с++
- Задания C# (массивы, матрицы).
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- ХЕЛП Дана квадратная матрица порядка n. на языке C или C ++
- Заполнить матрицу из 7 строк и 7 столбцов случайными числами в интервале [10;90]
- C++ -Дана целочисленная матрица
- матрица в C++