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

Кольцевой сдвиг в массиве - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
J_Max
Заблокирован
21.02.2010, 17:48     Кольцевой сдвиг в массиве #1
Уважаемые форум чане помогите пожалуйста решить эту задачу:
Дан массив допустим: 1 2 3 4 5 6 7 8, для работы с этим массивом написать функцию
его на экран так же написать функцию которая может заполнять массив случайными числами,
а главное написать функцию кольцевого сдвига, при таком сдвиге в массиве все значения
сохраняются.


Кольцевой сдвиг пример:
Исходный массив: 1 2 3 4 5 6 7 8 9
После работы функции сдвига: 2 3 4 5 6 7 8 9 1
Можете сделать на C++, надо срочно, заранее благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2010, 17:48     Кольцевой сдвиг в массиве
Посмотрите здесь:

Сдвиг в динамическом массиве C++
C++ Выполнить кольцевой сдвиг элементов массива
Циклический сдвиг в двумерном динамическом массиве C++
Кольцевой сдвиг в массиве C++
Выполнить кольцевой сдвиг элементов массива так чтобы его первый максимальный элемент оказался на k-том месте C++
Работа с битами. Сдвиг бит в массиве переменных. О как C++
Организовать произвольный циклический сдвиг в массиве C++
В заданном одномерном массиве осуществить циклический сдвиг C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
21.02.2010, 17:58     Кольцевой сдвиг в массиве #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
функцию его на экран
Вероятно вывода на экран.

Добавлено через 4 минуты
Работает пробуй, надеюсь препод поверит что ты написал.
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.h>
#include <stdlib.h>
//------------------------------------------------------
long round_insert(int *const massive, const int size_m);
long print(int *const massive, const int size_m);
long input(int *const massive, const int size_m);
long inprnd(int *const massive, const int size_m);
//------------------------------------------------------
int main(){
const int size = 10;
int massive[size] = {0,1,2,3,4,5,6,7,8,9};
round_insert(massive,size);
print(massive,size);
round_insert(massive,size);
print(massive,size);
round_insert(massive,size);
print(massive,size);
return 0;
}
 
long round_insert(int *const massive, const int size_m){
int tmp = massive[0];
for(int i=0;i<size_m-1;i++)massive[i]=massive[i+1];
massive[size_m-1]=tmp;
return 0;
}
 
long print(int *const massive, const int size_m){
for(int i=0;i<size_m;i++)cout<<massive[i]<<' ';
cout<<'\n';
cout<<'\n';
return 0;
}
 
 
long input(int *const massive, const int size_m){
for(int i=0;i<size_m;i++){cout<<"massive[i] = ";cin>>massive[i];cout<<'\n';}
cout<<'\n';
return 0;
}
 
 
long inprnd(int *const massive, const int size_m){
for(int i=0;i<size_m;i++)massive[i]=rand();
return 0;
}
J_Max
Заблокирован
21.02.2010, 18:09  [ТС]     Кольцевой сдвиг в массиве #3
надеюсь препод поверит
Поверит, куда он денется.

Добавлено через 1 минуту
Как хорошо что на форуме есть знающие люди, спасибо тебе большое.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
21.02.2010, 18:13     Кольцевой сдвиг в массиве #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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>
#include <ctime>
using std::cout;
using std::endl;
 
const size_t n=10;
const int minv=-5, maxv=5;
 
void init(int* arr, size_t size)
{
    //Инициализация целыми значениями из отрезка [minv;maxv]
    for(size_t i=0; i<size; ++i)
        arr[i]=rand()%(maxv-minv+1)+minv;
}
 
void print(int* arr, size_t size)
{
    for(size_t i=0; i<size; ++i)
        cout << arr[i] << " ";
    cout << endl;
}
 
void shift(int* arr, size_t size)
{
    int temp=arr[0];
    for(size_t i=0; i<size-1; ++i)
        arr[i]=arr[i+1];
    arr[size-1]=temp;
}
 
int main()
{
    srand(time(NULL));
    int arr[n];
    init(arr, n);
    print(arr, n);
    shift(arr, n);
    print(arr, n);
    system("pause");
    return 0;
}
ksenyakor
0 / 0 / 0
Регистрация: 18.06.2010
Сообщений: 11
24.06.2010, 22:48     Кольцевой сдвиг в массиве #5
а можете на паскале написать кольцевой сдвиг? мы С++ еще не изучали,я ничего не поняла.
заранее спасибо!
Yandex
Объявления
24.06.2010, 22:48     Кольцевой сдвиг в массиве
Ответ Создать тему
Опции темы

Текущее время: 10:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru