Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Basill
40 / 40 / 13
Регистрация: 16.02.2013
Сообщений: 197
#1

Циклический сдвиг массива - C++

14.03.2013, 14:22. Просмотров 657. Ответов 1
Метки нет (Все метки)

Задание такое. Нужно циклически сдвинуть массив на К элементов вправо. Я сделал сдвиг, только он выбирает К-ый элемент с конца, а мне нужно сначала, (например массив 3456789 выбираем К-ый элемент 3, получаем 5678934)
вот мой код:
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
#include <iostream>
#include <conio.h>
#include <clocale>
using namespace std;
 
int main()
{   setlocale (LC_ALL, "Russian");
 
const int n = 10;
int a[n],i,j,k,tmp;
 
// Ввод массива
for (i = 0; i < n; i++)
{
    cout<<"Введите элементы массива: ";
    cin>>a[i];
}
 
cout<<"Введите 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<<"Результат: "<<endl;
for (i = 0; i < n; i++)
{
    cout<<a[i]<<' ';
}
 
cout<<endl;
system("pause");
return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 14:22     Циклический сдвиг массива
Посмотрите здесь:

Циклический сдвиг массива - C++
Напишите программу, которая вводит с клавиатуры непустой массив целых чисел, циклический сдвигает элементы массива вправо на к позиции, и...

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

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

Циклический сдвиг элементов массива - C++
Помогите с заданием, оно на изображении

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

Циклический сдвиг массива влево - C++
условие: задан массив целочисленный состоящий из 10 элементов нужно сделать циклический сдвиг влево так чтобы первый максимум стал на...

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

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

Циклический сдвиг массива вправо - C++
дан двумерный массив MxN нужно осуществить поэлементный сдвиг вправо на 1 элемент

Циклический сдвиг массива влево - C++
Дан массив y1, ... , y20. Сформировать массив Z1, ... , Z20, элементы которого соответствуют элементам yi , сдвинутым на одну позицию...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
18.03.2013, 10:15     Циклический сдвиг массива #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
#include <iostream>
#include <vector>
 
using namespace std;
 
void shift1( vector<int>& v )
{
   int n = v.size() - 1;
   
   int t = v[n];
   
   while( n-- )
   {
      v[n+1] = v[n];
   }
   
   v[0] = t;
}
 
void cyclicShift( vector<int>& v, int k )
{
   for( k = k % v.size(); k>0; --k )
   {
      shift1( v );
   }
}
 
void print( vector<int>& v )
{
   for( auto& i : v )
      cout << i << ",";
   cout << endl;
}
 
int main() {
   
   vector<int> v = { 4,3,2,1 };
   
   print( v );
   
   cyclicShift( v, 5 );
    
   print( v );
   
   return 0;
}
Разбирайтесь.
Yandex
Объявления
18.03.2013, 10:15     Циклический сдвиг массива
Ответ Создать тему
Опции темы

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