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

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

Войти
Регистрация
Восстановить пароль
 
KB-1C
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 29
#1

Выполнить циклический сдвиг элементов квадратной матрицы, используя локальные и динамические массивы - C++

05.06.2014, 23:53. Просмотров 718. Ответов 1
Метки нет (Все метки)

Осуществить циклический сдвиг элементов квадратной матрицы размерность M x N вправо на k элементов таким образом: элементы первой строки сдвигаются в последний столбец сверху вниз, из него - в последнюю строку справа налево, из неё - в первый столбец снизу вверх, из него - в первую строку; для остальных элементов - аналогично.

Добавлено через 1 час 11 минут
Сам я это даже не представляю как делать
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 23:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выполнить циклический сдвиг элементов квадратной матрицы, используя локальные и динамические массивы (C++):

Осуществить циклический сдвиг элементов квадратной матрицы - C++
(Console Application) Осуществить циклический сдвиг элементов квадратной матрицы размером М х N вправо на k элементов таким образом:...

Осуществить циклический сдвиг элементов квадратной матрицы - C++
Помогите решить эту задачу: Осуществить циклический сдвиг элементов квадратной матрицы размерности М х N вправо на К элементов следующим...

Как осуществить циклический сдвиг элементов квадратной матрицы - C++
Помогите осуществить циклический сдвиг элементов квадратной матрицы размерности MXN вправо на k элементов таким образом: элементы 1-й...

В квадратной матрице выполнить циклический сдвиг строк - C++
В квадратной матрице выполнить циклический сдвиг строк таким образом, чтобы максимальный элемент каждой строки был расположен на главной...

Динамические массивы,циклический сдвиг столбцов массива - C++
Здравствуйте, Нужно сдвинуть столбцы динамической матрицы циклически вправо, у меня почему то ошибка, подскажите пожалуйста в чем...

Выполнить циклический сдвиг элементов каждой строки матрицы на количество позиций, равное номеру строки - C++
Дана матрица целых чисел X(5х8). Выполнить циклический сдвиг элементов каждой строки матрицы на количество позиций, равное номеру строки....

1
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
06.06.2014, 06:25 #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
#include <iostream>
#include <conio.h>
#include <iomanip>
 
int main()
{
    int H, W, counter = 0, k;
    std::cout << "Type H: "; std::cin >> H;
    std::cout << "H = W = " << H;
    std::cout << std::endl;
    W = H;
    std::cout << std::endl;
    int** M = new int*[H];
    for(int i = 0; i < H; i++)
        M[i] = new int[W];
        
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
        {
            M[i][j] = ++counter;
            std::cout << std::setw(4) << M[i][j];
        }
        std::cout << "\n\n";
    }
    
    std::cout << "\nType k: "; std::cin >> k;
    std::cout << "\n\n";
    
    int index = 0;
    while(k > 0)
    {
        while(index < H / 2)
        {
            for(int j = index; j < H - 1 - index; j++)
                std::swap(M[j][index], M[j + 1][index]);
            for(int j = index; j < W - 1 - index; j++)
                std::swap(M[H - 1 - index][j], M[H - 1 - index][j + 1]);
            for(int j = H - 1 - index; j > index; j--)
                std::swap(M[j][W - 1 - index], M[j - 1][W - 1 - index]);
            for(int j = W - 1 - index; j > index + 1; j--)
                std::swap(M[index][j], M[index][j - 1]);
            index++;
        }
        index = 0;
        k--;
    }
    
    for(int i = 0; i < H; i++)
    {
        for(int j = 0; j < W; j++)
            std::cout << std::setw(4) << M[i][j];
        std::cout << "\n\n";
    }
    
    for(int i = 0; i < H; i++)
        delete [] M[i];
    delete [] M;
    
    std::cout << "\nOperation succeeded\n";
    getch();
    return 0;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 06:25
Привет! Вот еще темы с ответами:

Осуществить циклический сдвиг элементов квадратной - C++
Осуществить циклический сдвиг элементов квадратной матрицы на n элементов вправо или вниз (в зависимости от введенного режима), n может...

Выполнить циклический сдвиг элементов массива - C++
Выполнить циклический сдвиг элементов массива X(N), N меньше или равно 20,на К позиций, в результате которое последнее К элементов займут...

Массивы: осуществить циклический сдвиг элементов массива - C++
Подскажите пожалуйста,правильно ли написала код к задаче:дан массив размера N.Осуществить циклический сдвиг элементов массива вправо на...

Одномерные массивы (циклический сдвиг всех элементов массива на одну позицию влево) - C++
Написать программу, которая делает циклический сдвиг всех элементов массива а1, а2, ..., аn на одну позицию влево, то-есть будет получен...


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

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

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