Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
#1

"Вращение" массива - C++

17.11.2013, 17:21. Просмотров 307. Ответов 1
Метки нет (Все метки)

Поделитесь мыслями, как можно, скажем, в массиве 5 х 5 осуществить перестановку элеменов так, словно мы его повернули на 90/180/270 градусов? Я тут набросал свой вариант, поделюсь, если вы поделитесь своим)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 17:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "Вращение" массива (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Осуществить "вращение" квадрата вокруг его центра - C++
вот есть не сложная задачка для Си: Осуществить "вращение" квадрата вокруг его центра. кто сможет сделать такое,буду очень...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

1
ПерС
375 / 291 / 90
Регистрация: 05.11.2013
Сообщений: 821
Записей в блоге: 5
Завершенные тесты: 1
17.11.2013, 18:13 #2
Если массив квадратен и писать в новую матрицу, задач абсолютно тривиальна.
Как понимаешь, достаточно функции вращения на 90 градусов, вызываемой нужное число раз.
В примере квадратная матрица "вращается" четырежды, возвращаясь, в итоге, "на место".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
 
int ** turn90 (int n, int **a) {
 int i,j;
 int **b;
 b = new int * [n];
 for (i=0; i<n; i++) b[i]= new int [n];
 for (i=0; i<n; i++)
 for (j=0; j<n; j++) {
  b[j][n-i-1]=a[i][j];
 }
 return b;
}
 
void out (char *s, int n, int **a) {
 int i,j;
 printf ("\n%s",s);
 for (i=0; i<n; i++) {
  printf ("\n");
  for (j=0; j<n; j++) printf ("%d ",a[i][j]);
 }
}
 
 
int main () {
 const int n=5;
 int **a;
 int i,j,k=1;
 a = new int * [n];
 for (i=0; i<n; i++) a[i]= new int [n];
 for (i=0; i<n; i++)
 for (j=0; j<n; j++) a[i][j]=k++;
 out ("Before",n,a);
 int **b=turn90 (n,a);
 out ("After 1",n,b);
 int **c=turn90 (n,b);
 out ("After 2",n,c);
 int **d=turn90 (n,c);
 out ("After 3",n,d);
 int **e=turn90 (n,d);
 out ("After 4",n,e);
 getchar();
 return 0;
}
Вывод:
Before
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
After 1
21 16 11 6 1
22 17 12 7 2
23 18 13 8 3
24 19 14 9 4
25 20 15 10 5
After 2
25 24 23 22 21
20 19 18 17 16
15 14 13 12 11
10 9 8 7 6
5 4 3 2 1
After 3
5 10 15 20 25
4 9 14 19 24
3 8 13 18 23
2 7 12 17 22
1 6 11 16 21
After 4
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2013, 18:13
Привет! Вот еще темы с ответами:

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

В одномерном массиве состоящим из "N" вещественных элементов вычислить сумму элемента массива с не четными "N" - C++
Помогите решить задачу плизз... В одномерном массиве состоящим из &quot;N&quot; вещественных элементов вычислить сумму элемента массива с не...

Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет" - C++
void check_same(const int* a) { for (const int* p = a; p &lt; a + 9; p++) for (const int* q = p+1; q &lt; a + 10; q++) ...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru