0 / 0 / 0
Регистрация: 15.12.2020
Сообщений: 3
1

Сдвиг двумерного массива на n элементов

08.05.2021, 18:35. Показов 709. Ответов 0

Задача:
Создайте двухмерный массив. Заполните его случайными числами и покажите на экран. Пользователь выбирает количество сдвигов и положение (влево, вправо, вверх, вниз). Выполнить сдвиг массива и показать на экран полученный результат. Сдвиг циклический.
Например, если мы имеем следующий массив
1 2 0 4 5 3
4 5 3 9 0 1
и пользователь выбрал сдвиг на 2 разряда вправо, то мы получим
5 3 1 2 0 4
0 1 4 5 3 9

Сделал вот что:
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
#include <iostream>
using namespace std;
int main()
{
    int a, temp;
    const int n = 2, m = 6;
    int massiv[n][m]{ { 1, 2, 0, 4 ,5, 3 },{ 4, 5, 3, 9, 0, 1 } };
    cout << "Iznachlniy masiv:\n";
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << massiv[i][j] << " ";
        }
        cout << endl;
    }
    int menu;
    cout << "Kuda suvat'?\n1. Vlevo;\n2. Vpravo;\n3. Vverh\n4. Vniz.\n5. Exit.\n>>> ";
    cin >> menu;
    switch (menu)
    {
    case 1:
        cout << "Na skol'ko shagov sdvigov?\n>>> ";
        cin >> a;
        for (int i = 0; i < a; i++)
        {
            for (int j = 0; j < n; j++)
            {
                temp = massiv[j][0];
                for (int g = 0; g < m - 1; g++)
                {
                    massiv[j][g] = massiv[j][g + 1];
                }
                massiv[j][m - 1] = temp;
            }
        }
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cout << massiv[i][j] << " ";
            }
            cout << endl;
        } break;
 
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                cout << massiv[i][j] << " ";
            }
            cout << endl;
        }
    }
    system("pause");
    return 0;
}
Как сделать, чтобы сдвигалось не только в лево, но и вправо, вниз и вверх.
Спасибо порумчанам заренее)

Добавлено через 2 минуты
Сразу подмечу, что заумно не нужно делать, потому что я не пойму) Нужно по тому принципу, как я сделал выше. Спасибо за понимание.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2021, 18:35
Ответы с готовыми решениями:

Сдвиг двумерного массива на n элементов
Друзья перепробовал все.. ответ близок.. делаю все for'ами, скидывать что я писал не буду потому...

Циклический сдвиг четных строк двумерного массива на k элементов вправо
Помогите, как организовать циклический сдвиг на k элементов вправо? #include &lt;iostream&gt;...

Сдвиг элемента двумерного массива
Напишите программу циклической перестановки чисел заданного массива так, чтобы i -e число стало ( ...

Сдвиг двумерного массива влево
заполнить двумерный массив из N строк и N столбцов следующим образом: первая строка является...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2021, 18:35
Помогаю со студенческими работами здесь

сдвиг двумерного массива во всевозможные стороны
Как-то так, в общем. #include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;ctime&gt; using namespace...

Сдвиг двумерного массива вниз на одну позицию
Есть задача:сдвинуть элементы двумерного массива вниз на одну позицию,а последнюю строку...

Выполнить сдвиг двумерного массива в указанном направлении
Разъясните как изменить код Создайте двухмерный массив. Заполните его случайными числами и...

Реализовать циклический сдвиг двумерного массива вправо на 1 деление
Дан двумерный массив из n строк и m столбцов. Произведите циклический сдвиг этого массива вправо на...

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

Выполнить циклический сдвиг двумерного массива на заданное количество столбцов
Дан двумерный массив размерностью N x M, заполненный случайными числами из диапазона от 0 до 100....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru