Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/104: Рейтинг темы: голосов - 104, средняя оценка - 4.51
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 36

Циклический сдвиг элементов массива

01.10.2010, 14:50. Показов 21734. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
26. Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, циклический сдвигает элементы массива вправо на к позиции, и печатает результат. Цикличность означает, что последний элемент массива становится самым первым его элементом.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.10.2010, 14:50
Ответы с готовыми решениями:

Циклический сдвиг элементов массива
Здравствуйте, подскажите пожалуйста почему в 57 строке происходит эта ошибка: error: invalid types 'int' for array subscript ...

Циклический сдвиг элементов массива
Ввести одномерный целочисленный массив A, вывести его. В массиве дважды сделать циклический сдвиг влево всех элементов предшествующих...

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

6
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
01.10.2010, 15:15
Lollipo,
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
#include <algorithm>
#include <iostream>
#include <iterator>
#include <functional>
#include <cstddef>
 
void Reverse(int* arr, std::size_t size)
{
  std::reverse(arr, arr + size);
}
 
void ShiftLeft(int* arr, std::size_t size, std::size_t k) {
  k %= size;
  
  Reverse(arr    , k);
  Reverse(arr + k, size - k);
  Reverse(arr    , size);
}
 
void ShiftRight(int* arr, std::size_t size, std::size_t k) {
  k %= size;
  
  ShiftLeft(arr, size, size - k);
}
 
int main() {
        int         arr[] = { 1, 2, 3, 4, 5 };
  const std::size_t size  = sizeof(arr) / sizeof(arr[0]);
  const std::size_t k     = 2;
  
  ShiftRight(arr, size, k);
  
  std::copy(arr, arr + size, std::ostream_iterator<int>(std::cout, " "));
  
  return 0;
}
Результат: http://liveworkspace.org/code/... 62f4762cf0
2
Бродяга
 Аватар для dihlofos
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
01.10.2010, 15:15
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
#include <iostream.h>
 
int main()
{
const int n = 10;
int a[n],i,j,k,tmp;
 
// Ввод массива
for (i = 0; i < n; i++)
{
    cout<<"Vvedite "<<i<<" element: ";
    cin>>a[i];
}
 
cout<<"Vvedte k: ";
cin>>k;
 
// Перестановка
for(i=0; i<k; i++)
{
    for(j=n-1; j>=0; j--)
    {
        if (j==n-1)
            tmp=a[n-1];
        else
            a[j+1]=a[j];
    }
    a[0]=tmp;
}
 
// Вывод рез-та
cout<<"Result: "<<endl;
for (i = 0; i < n; i++)
{
    cout<<a[i]<<' ';
}
 
cout<<endl;
system("pause");
return 0;
}
1
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
01.10.2010, 17:30
CyBOSSeR зачем же так много функций???

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <algorithm>
#include <iostream>
using namespace std;
 
void Reverse(int * Arr, size_t k)
{
    std::reverse(Arr, Arr + k);
}
 
int main() {
    int Arr[] = {1,2,3,4,5};
    const size_t size = sizeof(Arr) / sizeof(Arr[0]);
     size_t k;
     std::cin >> k;
    k = size - k;
    Reverse(Arr, k);
    Reverse(Arr+k, size - k);
    Reverse(Arr, size);
 
    std::copy(Arr, Arr + size, std::ostream_iterator<int>(std::cout, " "));
 
    system("pause");
}
1
Бродяга
 Аватар для dihlofos
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
02.10.2010, 08:30
NikolaWhite, а зачем вы заменили:
C++
1
k %= size; /*на*/ k = size - k;
В первом случае можно было сделать сдвиг больше, чем размер массива (типа неколько раз погонять массив по кругу
1
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
02.10.2010, 12:58
а зачем вы заменили:
Код C++
C++
1
k %= size; /*на*/ k = size - k;
Я подумал раз k это константа, как ее вообще можно изменять(в частности делением по модулю)?
0
Бродяга
 Аватар для dihlofos
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
02.10.2010, 13:02
Почему константа?) Вроде константа здесь только size. Тем более k=size-k - это тоже изменение)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.10.2010, 13:02
Помогаю со студенческими работами здесь

Циклический сдвиг элементов массива
Ввести одномерный целочисленный массив A, вывести его. Найти все повторяющиеся элементы в нем, следующих за максимальным.

Циклический сдвиг массива на k элементов
Всем привет! Задали задачу написать программу циклического сдвига массива на k элементов, k&lt;n. Но фишка в том, что нужно решение...

Циклический сдвиг элементов массива
Циклический сдвиг элементов массива на k позиций влево, вправо.

Циклический сдвиг элементов массива
1. Дана матрица размера 5 x 10. Вывести номер ее первой1|последней2 строки3|столбца4, содержащего только положительные элементы. Если таких...

Циклический сдвиг элементов массива
Помогите пожалуйста решить задачу: Элементы массива циклически сдвинуть на одну позиции влево: an=a1, ak=ak+1, при k=1,2,…,n-1


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru