Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
1

Повернуть произвольную матрицу на 90 градусов

06.12.2010, 15:25. Просмотров 2697. Ответов 4
Метки нет (Все метки)

Надо повернуть произвольную матрицу на 90 градусов.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 15:25
Ответы с готовыми решениями:

Повернуть матрицу на 90 градусов
Повернуть матрицу на 90 градусов.

Матрицу повернуть на 90 градусов по часовой стрелке на C++
Содержимое квадратной матрицы A(n,n) повернуть на 90 градусов по часовой стрелке, считая центром...

Повернуть матрицу на 90, 180, 270 градусов
Дана квадратная матрица порядка M. Повернуть ее на 90, 180 и 270 градусов в положительном...

Матрицу из файла,повернуть на 90 градусов по часовой
Здравствуйте, есть такое задание. На форуме видел код как повернуть матрицу,но там...

Повернуть квадратную матрицу на 90 градусов по часовой стрелке
повернуть квадратную матрицу на 90 градусов по часовой стрелке

4
asics
Freelance
Эксперт С++
2864 / 1799 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
06.12.2010, 15:37 2
Вот, как бэ, по часовой стрелке
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include <iostream>
 
void rotateMatrix(double **matrix, int &rows, int &cols, int rotate_count)
{
    double temp;
    int min;
 
    for (int r = 0; r < rotate_count; r++)
    {
        if (rows == cols)
            min = rows;
        else
        {
            if (rows < cols)
            {
                min = rows;
 
                for (int j = 0; j < rows; j++)
                    matrix[cols - 1][j] = matrix[j][cols - 1];
            }
            else
            {
                if (rows > cols)
                {
                    min = cols;
 
                    for (int i = 0; i < cols; i++)
                        matrix[i][rows - 1] = matrix[rows - 1][i];
                }
            }
        }
 
 
        for (int i = 0; i < min; i++)
        {
            for (int j = i + 1; j < min; j++)
            {
                temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
 
        int tmp = rows;
        rows = cols;
        cols = tmp;
 
        for (int k = 0; k < rows; k++)
        {
            for (int i = 0, j = cols - 1; i <= j; i++, j--)
            {
                temp = matrix[k][i];
                matrix[k][i] = matrix[k][j];
                matrix[k][j] = temp;
            }
        }
    }
}
 
int main()
{
    int n, m;
    int max;
    int rot;
    double **matrix;
 
    std::cout << "Enter n: ";
    std::cin >> n;
    std::cout << "Enter m: ";
    std::cin >> m;
 
    max = (n > m) ? n : m;
 
    matrix = new double *[max];
 
    for (int i = 0; i < max; i++)
        matrix[i] = new double [max];
 
    std::cout << "Enter matrix:" << std::endl;
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            std::cout << "matrix[" << i << "][" << j << "] = ";
            std::cin >> matrix[i][j];
        }
    }
 
    std::cout << "Enter number of rotation: ";
    std::cin >> rot;
 
    rotateMatrix(matrix, n, m, rot);
 
    std::cout << "Output matrix" << std::endl;
 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            std::cout << matrix[i][j] << "   ";
 
        std::cout << std::endl;
    }
 
    for (int i = 0; i < max; i++)
        delete [] matrix[i];
 
    delete [] matrix;
 
    std::cin.get();
    return 0;
}
2
silent_1991
Эксперт С++
5023 / 3083 / 271
Регистрация: 11.11.2009
Сообщений: 7,047
Завершенные тесты: 1
06.12.2010, 16:04 3
asics, знакомый код
1
asics
06.12.2010, 16:06
  #4

Не по теме:

silent_1991, ну извиняй, если что :)

0
silent_1991
06.12.2010, 16:07     Повернуть произвольную матрицу на 90 градусов
  #5

Не по теме:

asics, всё ок)))

0
06.12.2010, 16:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2010, 16:07
Привет! Вот еще темы с ответами:

Повернуть квадратную матрицу на 180 градусов в положительном направлении
Программа выводит не перевёрнутый массив, а начальный : #include &lt;iostream&gt; #include &lt;cstdlib&gt;...

Повернуть матрицу с случайными числами на 90 градусов против часовой стрелки
Задание звучит так: Заполнить матрицу случайными числами. Развернуть матрицу на 90o против часовой...

Повернуть матрицу на 180 градусов против часовой стрелки, не создавая дополнительных массивов
Имеется квадратная матрица (не менее, чем 5 на 5). Ввести элементы, распечатать. Повернуть на 180...


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

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

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