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

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

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

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

14.03.2013, 14:22. Просмотров 690. Ответов 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;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2013, 14:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Циклический сдвиг массива (C++):

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

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

Осуществить циклический сдвиг массива - C++
Осуществить циклический сдвиг массива на N элементов.Направление сдвига указывает пользователь(например, массив 0, 1, 2, 3, 4, 5, 6, 7, 8,...

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

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

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

1
Tulosba
:)
Эксперт С++
4396 / 3232 / 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;
}
Разбирайтесь.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2013, 10:15
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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