Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.02.2023
Сообщений: 8
1

Перемещение значение в квадратной матрице по часовой стрелке

15.02.2023, 16:05. Показов 485. Ответов 1
Метки #c (Все метки)

Author24 — интернет-сервис помощи студентам
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n x n по часовой стрелке. Для перестановки блоков использовать подпрограмму.

Попыталась решить сама, но застопорилась. Примерное решение есть, но реализация хромает. Преподаватель предложил ввести новую матрицу и проставить значения в "нужном" порядке, но ничего в голову не приходит. Попыталась найти в интернете, но ничего подходящего не было, либо не работает, либо совершенно иной язык.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h> 
 
int main() {
    int i, j, n, k, l;
    double** a, ** m;
    system("chcp 1251");
    system("cls");
    printf("Введите размерность матрицы: ");
    scanf_s("%d", &n);
    a = (double**)malloc(2 * n * sizeof(double*)); // n - количество строк 
    for (i = 0; i < 2 * n; i++) {
        a[i] = (double*)malloc(2 * n * sizeof(double)); // n - количество столбцов 
        for (j = 0; j < 2 * n; j++) {
            printf("a[%d][%d]= ", i, j);
            scanf_s("%lf", &a[i][j]);
        
 
 
    getchar(); getchar();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2023, 16:05
Ответы с готовыми решениями:

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

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

Перемещение окон по часовой стрелке
Начали изучать WIN32 API преподаватель дал ргр: Окно приложения занимает четверть экрана и...

Перемещение элементов массива по часовой стрелке
Всем привет, написал программу, которая должная делить массив, чётной размерности, на 4 части и...

1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,960
15.02.2023, 18:28 2
Лучший ответ Сообщение было отмечено ArcticFox как решение

Решение

Облегчённый вариант, для наглядности. Точно под задание сами переделайте.
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
#include <stdio.h>
 
#define N 5
 
int main(void) {
    int matrix[N * 2][N * 2];
 
    for (int i = 0; i < 2 * N; ++i)
        for (int j = 0; j < 2 * N; ++j)
            matrix[i][j] = i * 10 + j;
    
    printf("Before:\n");
    for (int i = 0; i < 2 * N; ++i) {
        for (int j = 0; j < 2 * N; ++j)
            printf("%2d ", matrix[i][j]);
        printf("\n");
    }
 
    for (int i = 0; i < N; ++i) {
        for (int j = 0; j < N; ++j) {
            int t = matrix[i + N][j];
            matrix[i + N][j] = matrix[i + N][j + N];
            matrix[i + N][j + N] = matrix[i][j + N];
            matrix[i][j + N] = matrix[i][j];
            matrix[i][j] = t;
        }
    }
 
    printf("After:\n");
    for (int i = 0; i < 2 * N; ++i) {
        for (int j = 0; j < 2 * N; ++j)
            printf("%2d ", matrix[i][j]);
        printf("\n");
    }
 
    return 0;
}
Код
C:\Users\andrew\prog\c\num>clang -Wall rotate_matrix.c

C:\Users\andrew\prog\c\num>a
Before:
 0  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
After:
50 51 52 53 54  0  1  2  3  4
60 61 62 63 64 10 11 12 13 14
70 71 72 73 74 20 21 22 23 24
80 81 82 83 84 30 31 32 33 34
90 91 92 93 94 40 41 42 43 44
55 56 57 58 59  5  6  7  8  9
65 66 67 68 69 15 16 17 18 19
75 76 77 78 79 25 26 27 28 29
85 86 87 88 89 35 36 37 38 39
95 96 97 98 99 45 46 47 48 49

C:\Users\andrew\prog\c\num>
1
15.02.2023, 18:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2023, 18:28
Помогаю со студенческими работами здесь

Перемещение картинки по часовой стрелке(таймер)
Рисунок должен «передвигаться» по часовой стрелке по углам формы( по таймеру ). Либо Я что-то не...

Процедура вывода элементов квадратной матрицы по спирали по часовой стрелке.
Собственно сабж...

Из квадратной матрицы порядка 2n получить новую матрицу, переставляя ее блоки размера n x n по часовой стрелке
Дана целочисленная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки...

Переставить блоки в матрице по часовой стрелке, крест-накрест
дана действительная квадратная матрица порядка 2N. получить матрицу, переставляя её блоки размером...

Угол часовой стрелки между лучом направленным вверх и часовой стрелкой в направлении движения по часовой стрелке
Даны два елых числа. Первое из них – количество часов, второе – количество минут. Составить...

В матрице, разделенной диагоналями на 4 сектора, переместить элементы в секторах по часовой стрелке
Для данной квадратной матрицы, разделенной диагоналями на 4 сектора, переместить элементы в...

Как в прямоугольной матрице переместить элементы по периметру на один по часовой стрелке?
Здравствуйте, нужна часть кода которая будет в массиве 4х4 менять все элементы матрицы по часовой...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru