С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
bilochka
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 17
#1

Указатели: циклический сдвиг элементов массива - C++

10.02.2013, 14:20. Просмотров 802. Ответов 3
Метки нет (Все метки)

помогите пожалуйста написать программу
организовать введение данных в массив, обработку элементов и вывод результатов, используя указатели.
задание:
Дано натуральное число N (N – парное) и одномерный массив A1, A2, …, AN логических элементов. Виконати циклический сдвиг первой половины массива справа налево, а второй - слева направо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2013, 14:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатели: циклический сдвиг элементов массива (C++):

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

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

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

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

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

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

3
Troll_Face
602 / 402 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
10.02.2013, 14:23 #2
а теперь все тоже самое, но по-русски... я так понял: вводится N (четное), создается динамический массив, и обе его половины сдвигаются циклически?
0
bilochka
0 / 0 / 0
Регистрация: 10.02.2013
Сообщений: 17
10.02.2013, 16:34  [ТС] #3
да, именно так...
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
10.02.2013, 21:14 #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
47
48
49
50
51
52
53
#include <iostream>
 
int *copy(int *begin, int *end, int *destination) {
  int *copyOfDestination = destination;
  while (begin != end) {
    *destination++ = *begin++;
  }
  return copyOfDestination;
}
 
// ñäâèãГ*ГҐГІ Г¬Г*Г±Г±ГЁГў âëåâî Г*Г* number ýëåìåГ*òîâ
void shiftLeft(int *begin, int *end, int number) {
  int *storage = new int[number];
  copy(begin, begin + number, storage);
  for (int *first = begin; first != end - number; ++first) {
    *first = *(first + number);
  }
  copy(storage, storage + number, end - number);
  delete [] storage;
}
 
// ñäâèãГ*ГҐГІ Г¬Г*Г±Г±ГЁГў ГўГЇГ°Г*ГўГ® Г*Г* number ýëåìåГ*òîâ
void shiftRight(int *begin, int *end, int number) {
  int *storage = new int[number];
  copy(end - number, end, storage);
  for (int *last = end - 1; last != begin + number - 1; --last) {
    *last = *(last - number);
  }
  copy(storage, storage + number, begin);
  delete [] storage;
}
 
int main(int argc, char **argv) {
  int size = 10;
  int *array = new int[size];
 
  for (int i = 0; i < 10; ++i) {
    std::cout << (array[i] = i) << " ";
  }
  std::cout << std::endl;
  
  shiftLeft(array, array + size / 2, 2);
  shiftRight(array + size / 2, array + size, 2);
    
  for (int i = 0; i < 10; ++i) {
    std::cout << array[i] << " ";
  }
  std::cout << std::endl;
 
  delete [] array;
  std::cin.get();
  return 0;
}
1
10.02.2013, 21:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2013, 21:14
Привет! Вот еще темы с ответами:

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

Циклический сдвиг элементов массива влево - C++
Совершить циклический сдвиг элементов массива влево так, чтобы первый максимальный элемент был на K-месте ( K- вводиться с клавиатуры)

Циклический сдвиг элементов бинарного массива - C++
Дано целое число в двоичной системе счисления, т.е. последовательность цифр 0 и 1. Осуществить циклический сдвиг элементов массива вправо...

Циклический сдвиг элементов одномерного массива - C++
доброго времени суток! помогите составить две функции одну для циклического сдвига элементов одномерного массива на К позиций, а вторую...


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

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

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