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

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

Войти
Регистрация
Восстановить пароль
 
Paul4ik
3 / 0 / 0
Регистрация: 22.05.2012
Сообщений: 25
#1

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

22.06.2012, 02:06. Просмотров 713. Ответов 1
Метки нет (Все метки)

Ребят, помогите пожадуйста написать лабу...Времени ктастрофически не хватает, буду очень признателен

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

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
87 / 739 / 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     Циклический сдвиг массива без использования вспомогательного массива
Ответ Создать тему
Опции темы

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