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

Циклический сдвиг массива без использования вспомогательного массива - C++

Восстановить пароль Регистрация
 
Paul4ik
3 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 25
22.06.2012, 02:06     Циклический сдвиг массива без использования вспомогательного массива #1
Ребят, помогите пожадуйста написать лабу...Времени ктастрофически не хватает, буду очень признателен

Написать функцию, которая сдвигает массив циклически вправо без использования вспомогательного массива на столько элементов, сколько положительных чисел в массиве. Функция не должна возвращать значение. Использование глобальных переменных внутри функции запрещено (т.е. массив должен передаваться как параметр). Написать программу, в которой при помощи генератора псевдослучайных чисел создаются два одномерных массива одинакового размера. К ним должна быть применена описанная выше функция. На экран должны быть выведены начальные массивы и измененные массивы. Создание и вывод массивов оформить в виде функций, не возвращающих значений.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2012, 02:06     Циклический сдвиг массива без использования вспомогательного массива
Посмотрите здесь:

C++ циклический сдвиг массива
Циклический сдвиг массива C++
Циклический сдвиг двумерного массива C++
C++ Циклический сдвиг массива влево
Циклический сдвиг элементов массива C++
C++ Циклический сдвиг массива
циклический сдвиг массива C++
C++ Циклический сдвиг элементов массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.06.2012, 10:35     Циклический сдвиг массива без использования вспомогательного массива #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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 10
 
void initv(int* X, int n);
void printv(int* X, int n);
void shiftr(int* X, int n, int pos);
void getpcount(int* X, int n, int* count);
 
int main()
{
    int *X = new int[N], 
        *Y = new int[N];
 
    initv(X,N); initv(Y,N);
 
    int count_x = 0, count_y = 0;
    getpcount(X,N,&count_x);
    getpcount(Y,N,&count_y);
 
    printv(X,N);
    shiftr(X,N,count_x);
    printv(X,N);
 
    printf("\n");
 
    printv(Y,N);
    shiftr(Y,N,count_y);
    printv(Y,N);
 
    _getch();
 
    return 0;
}
 
void initv(int* X, int n)
{
    for (int i = 0; i < n; i++)
        X[i] = rand() % (2 * (n-1)) - n;
}
 
void getpcount(int* X, int n, int* count)
{
    for (int i = 0; i < n; i++)
        *count = (X[i] > 0) ? (*count)+1 : *count;
}
 
void shiftr(int* X, int n, int pos)
{
    while (--pos >= 0)
    {
        int val = X[n-1];
        for (int i = n-1; i >= 0; i--)
            X[i] = X[i-1]; X[0] = val;
    }
}
 
void printv(int* X, int n)
{
    for (int i = 0; i < N; i++)
        printf("%d ",X[i]);
    printf("\n");
}
http://liveworkspace.org/code/f087d6...bf982cb7c7830f
Yandex
Объявления
22.06.2012, 10:35     Циклический сдвиг массива без использования вспомогательного массива
Ответ Создать тему
Опции темы

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