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

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

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

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

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

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

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

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

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

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

Сдвиг массива влево на n знаков - C++
пишу на C++ не могу найти ошибку в коде. помогите я не очень силен только учусь))) спасибо!!! вот код #include<iostream> ...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петр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";
v.a.l.i.d
412 / 377 / 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;
}
DiffEreD
1429 / 766 / 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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2012, 16:00     Сдвиг влево
Еще ссылки по теме:

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

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

Многократный сдвиг массива влево - C++
У меня есть массив , к примеру : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Проходя по нему я проверяю является ли число...

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


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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 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/c29f53...64be2aea160529
Yandex
Объявления
02.11.2012, 16:00     Сдвиг влево
Ответ Создать тему
Опции темы

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