Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для Liori
4 / 4 / 5
Регистрация: 30.08.2012
Сообщений: 155

Циклический сдвиг четных строк двумерного массива на k элементов вправо

12.03.2015, 21:45. Показов 2448. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, как организовать циклический сдвиг на k элементов вправо?

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
#include <iostream>
#include <vector>
#include <clocale>
using namespace std;
void Input_Arr(vector<vector<int> > &Mass, int N, int M);
void Output_Arr(vector<vector<int> > &Mass, int N, int M);
void Cycle_Swap(vector<vector<int> > &Mass, int N, int M, int k);
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
    int N, M, k;
    cout << "Введите размер массива: ";
    cin >> N >> M;
    vector<vector<int> > Mass(N, vector<int> (M));
    cout << "Введите элементы массива: ";
    Input_Arr(Mass, N, M);
    cout << "Введите количество сдвигов: ";
    cin >> k;
    Cycle_Swap(Mass, N, M, k);
    cout << "Новый массив: " << endl;
    Output_Arr(Mass, N, M);
    cout << endl;
    system("pause");
    return 0;
}
 
void Input_Arr(vector<vector<int> > &Mass, int N, int M)
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            cin >> Mass[i][j];
        }
    }
 
}
 
void Output_Arr(vector<vector<int> > &Mass, int N, int M)
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            cout << Mass[i][j] << "\t";
        }
    }
}
 
void Cycle_Swap(vector<vector<int> > &Mass, int N, int M, int k)
{
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            if (i % 2 == 0)
            {
                if (j != M) Mass[i][j] = Mass[i + k][j];
                else Mass[i][j] = Mass[i + k][j+1];
                
            }
        }
        
    }
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2015, 21:45
Ответы с готовыми решениями:

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

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

Произвести циклический сдвиг вправо элементов массива
Люди в Си++ дуб дубом. Помагите очень надо. Вот текст задачи. Ввести одномерный целочисленный массив A, вывести его. Произвести...

4
19 / 19 / 14
Регистрация: 25.02.2015
Сообщений: 138
12.03.2015, 22:15
Цитата Сообщение от Liori Посмотреть сообщение
for (int j = 0; j < M; j++)
Цитата Сообщение от Liori Посмотреть сообщение
if (j != M) Mass[i][j] = Mass[i + k][j];
* * * * * * * * else Mass[i][j] = Mass[i + k][j+1];
j и так не будет равно M, по условию цикла

Добавлено через 18 минут
https://www.cyberforum.ru/cpp-... 97853.html а вот тут решение
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
12.03.2015, 22:33
Liori, Циклический сдвиг - задача не совсем тривиальная. Если не использовать дополнительную память для результирующего массива. Как ни странно, тут нужны некоторые штуки из начальной теории чисел. Типа НОД (наименьшего общего делителя) Недавно тут решалась подобная задачка (и, кажется, решилась!) Попробуй поискать.
0
12 / 12 / 6
Регистрация: 27.11.2013
Сообщений: 73
13.03.2015, 08:20
Алгоритм сдвига не сложный. Он описан тут: http://www.cplusplus.com/refer... hm/rotate/ (да, НОД там есть!).
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
13.03.2015, 11:08
Вот
Осуществить циклический сдвиг массива на N элементов
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2015, 11:08
Помогаю со студенческими работами здесь

Циклический сдвиг элементов массива вправо на К позиций
Дан массив размера N и число К (0&lt;k&lt;5, K&lt;n) Осуществить циклический сдвиг элементов массива вправо на К позиций .

Осуществить циклический сдвиг элементов массива вправо на k позиций
Решаю задачи на сервере одном, задание было &quot;Дан массив размера N ≥ 2 и число k (0 &lt; k &lt; N). Осуществить циклический сдвиг...

Осуществить циклический сдвиг элементов массива вправо на одну позицию
4Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на одну позицию (при этом A 1 перейдет в A 2 , A 2 — в A 3 ,...

Ребят я не могу понять где ошибка (циклический сдвиг элементов массива вправо)
Вот дана такая задача Напишите программу, которая циклически сдвигает элементы массива вправо (0-й элемент становится 1-м, 1-й становится...

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru