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

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

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

Сдвиг влево - C++

02.11.2012, 14:41. Просмотров 894. Ответов 4
Метки нет (Все метки)

Напишите программу, которая циклически сдвигает элементы массива влево (0-й элемент становится последним, 1-й становится 0-м, ..., последний становится предпоследним). Сначала задано число n - количество элементов в массиве ( не превышает 100). Далее через пробел записаны n чисел - элементы массива. Выведите элементы получившегося массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2012, 14:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сдвиг влево (C++):

Где и когда уместно применять операции << (сдвиг влево) и >> (сдвиг вправо)? - C++
Кто может привести пример , когда нужно использовать операции: 1) &lt;&lt; сдвиг влево 2) &gt;&gt; сдвиг вправо

Сдвиг символа влево - C++
Помогите осуществить сдвиг символа (буквы) из циклического алфавита на n влево. То есть, например, на вход методу дается буква 'A' и число...

Логический сдвиг влево - C++
unsigned __int64 number = 239176053778592; ClongNumber c(number); c.print(); for(int i = 0; i &lt; 18; i++) { unsigned...

Циклический сдвиг влево - C++
Помогите написать программу которая будет осуществлять циклический сдвиг влево введённого числа на N разрядов (например, при сдвиге числа...

Сдвиг слов влево - C++
В переменной a есть строка из 5 слов. Как в цикле сделать сдвиг каждого слова влево и вывести каждый измененный результат? Например...

массив, сдвиг влево - C++
нужен код программы, которая сдвигает элементы массива на 1 влево, тоесть было 1 5 6 8 9, стало 5 6 8 9 1 ... через функцию(в main только...

4
Петр1
3 / 1 / 1
Регистрация: 09.10.2012
Сообщений: 25
02.11.2012, 15:00 #2
Как вариант.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    srand(time(NULL));
    const int n=10;
    int arr[n];
    for(int i=0; i<n; i++){
        arr[i]=rand()%5+5;
        cout<<arr[i]<<" ";
    }
    for(int i=0; i<n-1; i++){
        arr[n-i-1]=arr[n-i-1]+arr[n-i-2];
        arr[n-i-2]=arr[n-i-1]-arr[n-i-2];
        arr[n-i-1]=arr[n-i-1]-arr[n-i-2];
    }
    cout<<"\n";
    for(int i=0; i<n; i++){
        cout<<arr[i]<<" ";
    }
cout<<"\n";
0
v.a.l.i.d
413 / 378 / 10
Регистрация: 21.09.2012
Сообщений: 913
02.11.2012, 15:35 #3
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
#include "stdafx.h"
#include "iostream"
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    const int n = 10;
    int A[n];
 
    // заполнение массива
    cout << "Введите через пробел " << n << " чисел: ";
    for (int i=0; i<n; i++)
        cin >> A[i];
 
    // сдвиг влево
    int tmp = A[0];
    for (int i=1; i<n; i++)
        A[i-1] = A[i];
    A[n-1] = tmp;
 
    // печать массива
    for (int i=0; i<n; i++)
        cout << A[i] << ' ';
    cout << endl;
 
    system("pause");
    return 0;
}
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
02.11.2012, 15:55 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <algorithm>
#include <array>
 
int main()
{
    setlocale (LC_ALL, "Russian");
    std::array<int, 10> ar;
    int i = 0;
    std::cout<<"Массив до:                 ";
    for (int& x : ar) {x = i++; std::cout<<x<<" ";}
    std::cout<<"\nСдвиг влево на 2 позиции:  ";
    std::rotate(ar.begin(), ar.begin()+2, ar.end());
    for (const int& x : ar) std::cout<<x<<" ";
    std::cout<<"\nСдвиг вправо на 4 позиции: ";
    std::rotate(ar.rbegin(), ar.rbegin()+4, ar.rend());
    for (const int& x : ar) std::cout<<x<<" ";
    std::cout<<std::endl;
    system("pause");
    return 0;
}
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
02.11.2012, 16:00 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
   std::vector<int> v = {1,2,3,4,5,6,7,8,9};
   std::rotate(v.begin(), v.begin() + 1, v.end());
   std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
   std::cout << std::endl;
}
http://liveworkspace.org/code/c29f535cf93b045ef064be2aea160529
0
02.11.2012, 16:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 16:00
Привет! Вот еще темы с ответами:

Побитовый сдвиг влево и вправо - C++
Что выполнится быстрее - сдвиг влево или сдвиг вправо? И как замерить время выполнения каждой из операций в коде? Добавлено через 2...

Сдвиг влево на один бит - C++
void Bitstring::shl() { int carry=!!(str&amp;0x80000000); str&lt;&lt;=1; str|=carry; str&lt;&lt;=1; } ...

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

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


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

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

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