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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
Vernblum
0 / 0 / 0
Регистрация: 10.07.2013
Сообщений: 6
#1

Осуществить циклический сдвиг элементов массива влево на одну позицию - C++

11.07.2013, 11:41. Просмотров 3338. Ответов 6
Метки нет (Все метки)

Помогите, пожалуйста, решить программы на си++, если не решу мне хана, заранее спасибо:
Дан массив размера N. Осуществить циклический сдвиг элементов массива влево на одну позицию(при этом АN перейдет в АN-1, АN-1 - в АN-2, А1 - в АN)(обработка одномерных массивов).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 11:41     Осуществить циклический сдвиг элементов массива влево на одну позицию
Посмотрите здесь:
Осуществить циклический сдвиг элементов массива вправо на одну позицию C++
Одномерные массивы (циклический сдвиг всех элементов массива на одну позицию влево) C++
Осуществить циклический сдвиг элементов массива влево на k позиций C++
C++ Циклический сдвиг элементов массива влево
Осуществить сдвиг элементов массива влево на K позиций C++
C++ Осуществить циклический сдвиг массива на N элементов
Осуществить циклический сдвиг элементов массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
11.07.2013, 11:54     Осуществить циклический сдвиг элементов массива влево на одну позицию #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include<conio.h>
using namespace std;
const int n=11;
int main() 
{ 
    setlocale(LC_CTYPE,"rus");
    int temp;
    int arr[n]={0,1,2,3,4,5,6,5,7,8,9};
    temp = arr[0];
    for (int i = 0; i < n; i++)
        arr[i] = arr[i + 1];
    arr[n - 1] = temp;
    for(int i=0;i<n;i++)
    {
        cout<<arr[i]<<endl;
    }
 system("pause"); 
 return 0; 
 }
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.07.2013, 11:56     Осуществить циклический сдвиг элементов массива влево на одну позицию #3
Цитата Сообщение от Valentina Посмотреть сообщение
C++
1
2
    for (int i = 0; i < n; i++)
        arr[i] = arr[i + 1];
аккуратнее с границами массива:
C++
1
2
    for (int i = 0; i < n - 1; i++)
        arr[i] = arr[i + 1];
Valentina
68 / 68 / 3
Регистрация: 13.05.2012
Сообщений: 130
11.07.2013, 12:21     Осуществить циклический сдвиг элементов массива влево на одну позицию #4
почему, там все правильно. У нас же не
C++
1
for (int i = 0; i <= n; i++)
, а
C++
1
for (int i = 0; i < n; i++)
если следовать вашему коду, то мы теряем один элемент
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.07.2013, 12:23     Осуществить циклический сдвиг элементов массива влево на одну позицию #5
у вас там arr[i + 1] стоит, не забывайте
ValeryS
Модератор
6540 / 5006 / 461
Регистрация: 14.02.2011
Сообщений: 16,652
11.07.2013, 12:30     Осуществить циклический сдвиг элементов массива влево на одну позицию #6
Vernblum,
поиском то вообще не пользуемся?
недавно тема была
Функция сдвига массива
100500 алгоритмов предложили
лично я два
плюс _Faeton_
плюс Thinker

Добавлено через 1 минуту
Valentina,
тебе интересно будет посмотри
предложенное тобой решение оптимально при сдвиге на 1 а при большем сдвиге цикл в цикле
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2013, 12:40     Осуществить циклический сдвиг элементов массива влево на одну позицию
Еще ссылки по теме:
C++ Циклический сдвиг элементов массива по диагонали влево вниз
Массивы: осуществить циклический сдвиг элементов массива C++
Осуществить циклический сдвиг элементов одномерного массива на k позиций C++
C++ Осуществить циклический сдвиг элементов массива вправо на k позиций
C++ Осуществить циклический сдвиг элементов массива влево1|вправо2 на k позиций

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
11.07.2013, 12:40     Осуществить циклический сдвиг элементов массива влево на одну позицию #7
std::rotate
Yandex
Объявления
11.07.2013, 12:40     Осуществить циклический сдвиг элементов массива влево на одну позицию
Ответ Создать тему
Опции темы

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