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

Сдвиг в динамическом массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Схема горнера http://www.cyberforum.ru/cpp-beginners/thread107067.html
Эта схема основывается на следующем представлении многочлена: p(x) = (( ... ((an*x + an-1)x + an-2)x + ... + a2)x + a1)x + a0 HornersMethod(x) x точка, в которой вычисляется значение многочлена...
C++ Задание на массивы, на обработку массивов (С++) Пожалуйста, уже не знаю у кого просить помощи. Надо решить такую штуку. http://s09.***********/i182/1003/b0/e09c0f1235b0.jpg Заранее большое большое спасибо http://www.cyberforum.ru/cpp-beginners/thread107065.html
Последовательность Фибоначчи СТРОКИ! C++
Помогите пожалуйста написать программу. Ато препод ничего не может толком рассказать а только требует. С уровнем знания С++ поэтому у меня плохо. Нужно написать программу, которая бы находила...
C++ Операторы цикла, целочисленные типы данных
Задали задачку на циклические алгоритмы с кучей пояснений, но все равно похожего найти не могу в поиске(( С консоли вводятся целые числа в диапазоне ±32765 до прекращения ввода по клавише Esc....
C++ Работа с текстом http://www.cyberforum.ru/cpp-beginners/thread107060.html
Помогите реализовать: Считывание текста из текстового файла и вывод на экран только слов, состоящих из заданного количества букв. Сформировать из текста словарь (запись его в новый файл)....
C++ Подсчитать количество пар соседних элементов массива с одинаковыми значениями Что нужно сделать: Подсчитать количество пар соседних элементов с одинаковыми значениями Диапазон значений : -50 до 50 Размерность массива: 200 Вложения . Пример решения задачи токо не мой... подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт С++
2305 / 1675 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
21.03.2010, 15:50
zzzt, вот самое красивое решение данной задачи из всех мне известных
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Обмен значениями двух целочисленных переменных
void Swap(int& left, int& right)
{
  int tmp   = left;
      left  = right;
      right = tmp;
}
 
// Разворот массива
void Reverse(int* arr, int size)
{
  for (int i = 0; i < size / 2; ++i)
    Swap(arr[i], arr[size - i - 1]);
}
 
// Сдвиг вправо на k позиций
void ShiftRight(int* arr, int size, int k)
{
  k %= size;
  Reverse(arr, k);             // Разворот левой части массива
  Reverse(arr + k, size - k);  // Разворот правой части массива
  Reverse(arr, size);          // Разворот всего массива
}
Возьми листок бумаги, нарисуй массив и посмотри как это работает.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.