Другие языки программирования и технологии
Поворот массива на 90 градусов в с++
есть некоторая квадратная матрица а, в который первый элемент главной диагонали имеет индексы i1 (строка) и j1 (столбец) , а последний - i2 и j2. нужно повернуть эту матрицу, можно с использованием дополнительной памяти, на 90 градусов по часовой стрелке. заранее благодарю
> первый элемент главной диагонали имеет индексы i1 (строка) и j1 (столбец) , а последний - i2 и j2
Написана какая-то хрень не имеющая отношения к вопросу о повороте и, скорее всего, к С++ вообще.
Повернуть можно так:
#include <iostream>
#include <iomanip>
using namespace std;
#define n 5
int main() {
int a[n][n];
for (int c = 0; c < n * n; ++c) *(&a[0][0] + c) = c;
for (int r = 0; r < n; ++r) {
for (int c = 0; c < n; ++c) cout << setw(3) << a[r][c];
cout << endl;
}
for (int r = 0; r < n / 2; ++r) {
for (int c = 0; c < (n + 1) / 2; c++) {
int tmp = a[r][c];
a[r][c] = a[n - 1 -c][r];
a[n - 1 - c][r] = a[n - 1 - r][n - 1 - c];
a[n - 1 - r][n - 1 - c] = a[c][n - 1 - r];
a[c][n - 1 - r] = tmp;
}
}
cout << endl;
for (int r = 0; r < n; ++r) {
for (int c = 0; c < n; ++c) cout << setw(3) << a[r][c];
cout << endl;
}
return 0;
}
Написана какая-то хрень не имеющая отношения к вопросу о повороте и, скорее всего, к С++ вообще.
Повернуть можно так:
#include <iostream>
#include <iomanip>
using namespace std;
#define n 5
int main() {
int a[n][n];
for (int c = 0; c < n * n; ++c) *(&a[0][0] + c) = c;
for (int r = 0; r < n; ++r) {
for (int c = 0; c < n; ++c) cout << setw(3) << a[r][c];
cout << endl;
}
for (int r = 0; r < n / 2; ++r) {
for (int c = 0; c < (n + 1) / 2; c++) {
int tmp = a[r][c];
a[r][c] = a[n - 1 -c][r];
a[n - 1 - c][r] = a[n - 1 - r][n - 1 - c];
a[n - 1 - r][n - 1 - c] = a[c][n - 1 - r];
a[c][n - 1 - r] = tmp;
}
}
cout << endl;
for (int r = 0; r < n; ++r) {
for (int c = 0; c < n; ++c) cout << setw(3) << a[r][c];
cout << endl;
}
return 0;
}
Похожие вопросы
- программа в Паскале. осуществить поворот матрицы против часовой стрелки на 90 градусов
- знатокам электронных таблиц. Какой командой (или группой команд) осуществить поворот массива на 180*? не путать с ТРАНСП
- Как повернуть матрицу на 90 градусов с++?
- C++ повернуть матрицу на 90 градусов в положительном направлении
- Как в Adobe Photoshop CS3 повернуть лист на 90 градусов.
- 1.Заполнить массив случайными числами. Вывести элементы массива на экран. Заменить все его минимальные элементы нулями.
- помогите пожалуйста сделать мне практическую по массивам, пожалуйста!!!
- Задачка на сортировку массивов
- Двумерный массив - Delphi
- Вопросы по информатике "Массив"