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

Сдвинуть циклически элементы одномерного массива на k позиций влево - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Множественное наследование в языке С++ http://www.cyberforum.ru/cpp-beginners/thread377364.html
#include <iostream.h> #include <stdlib.h> #include <conio.h> class D2{ int a; public: D2() { }; D2(int x) { a=x; } void show_D2() { cout <<"D2= "<< a << "\n"; }
C++ Числа с плавающей запятой есть программа которая подсчитывает сумму чисел, введенных с командной строки. к примеру С:\> test.exe 1 2 3 <ENTER> что бы просуммировать эти числа необходимо преобразовать из char в long,... http://www.cyberforum.ru/cpp-beginners/thread377359.html
Создание класса по обработке массива. C++
Помогите, пожалуйста решить!!! Задание: Напишите программу по обработке массива, как объекта созданного Вами класса "Массив" и выполните на тестовых данных. Операции с массивами следует...
C++ Является ли первая строка циклическим сдвигом второй строки
Привет всем. Помогите пожалуйста написать код: нужно проверить, есть ли первая строка (с клавиатуры) циклическим сдвигом второй строки (тоже с клавиатуры). Зарание всем спасибо.
C++ ООП, методы http://www.cyberforum.ru/cpp-beginners/thread377325.html
Такая проблема. Пишу класс, реализующий множество целых чисел. Число k принадлежит множеству, если a=1. Вот IntegerSet.h пока недоработанный: #ifndef class_IntegerSet #define class_IntegerSet ...
C++ Упражнение из "Философия С++" Б. Эккель т. 1. Не понимаю что имеется ввиду. #define FIELD(a) char* a##_string; int a##_size; Измените макрос FIELD(), так чтобы в нем присутствовал числовой аргумент index. Создайте класс, члены которого вызывают макрос FIELD(). Включите в... подробнее

Показать сообщение отдельно
sponlin
1 / 1 / 0
Регистрация: 03.11.2011
Сообщений: 20
03.11.2011, 21:57  [ТС]
Цитата Сообщение от diagon Посмотреть сообщение
C++
1
std::rotate( arr.begin(), arr.begin() + k , arr.end() );
Результат: http://liveworkspace.org/code/82e4c0...507777bb32275c
Я еще не настолько далеко ушел в университете по изучению С++ :-( Такой вариант решения хоть и правильный за что спасибо, но не подходит...

Добавлено через 1 час 8 минут
Погонял тараканов в голове... Насколько я понял решение задачи сводится к тому, что некоторой переменной присваивается значение первого элемента массива. Затем перемещаем все остальные элементы массива влево на одну позицию и после восстанавливаем последний элемент массива... В теории я хоть прав? :-)
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
#include <iostream.h>
#include <math.h>
 
int main()
{
    int a[100];
    int i, n, k, j;
    cout << "Vvedite kol-vo elementov: ";
    cin >> n;
    for (i=0; i<n; i++)
    {
        cout << "Vvedite a["<< i <<"]: ";
        cin >> a[i];
    }
    cout << "Massiv a: ";
    for (i=0; i<n; i++)
        cout << a[i] << " ";
    cout << endl;
    cout << "Vvedite chislo sdviga: ";
    cin >> k;
    j=a[0];
    for (i=1; i<n; i++)
    {
        a[i-1]=a[i];
    }
    a[n]=j;
    cout << "Novuj masiv: ";
    for (i=0; i<n; i++)
        cout << a[i] << " ";
    cout << endl;
 
    return 0;
}
Хотя уверен что решений данной задачи может быть большое количество... Запрограммировать данный алгоритм что то совсем не получается :-( Может кто укажет на ошибки? Где должна использоваться переменная k - число позиций сдвига?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru