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

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

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

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

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

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

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

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

Циклический сдвиг массива - C++
Задание такое. Нужно циклически сдвинуть массив на К элементов вправо. Я сделал сдвиг, только он выбирает К-ый элемент с конца, а мне нужно...

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zitxbit
Master C/C++
88 / 740 / 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
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2012, 10:35
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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