Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Haker Cat
0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 33

Циклический сдвиг

13.06.2024, 09:29. Показов 597. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу, которая будет циклически сдвигать заданный массив на один элемент вправо; последний элемент при этом должен оказаться на первом месте.

Входные данные

На вход программе сначала подаётся значение n ⩽ 100 — количество элементов в массиве. В следующей строке входных данных расположены сами элементы массива — натуральные числа, не превосходящие 100.

Выходные данные

Выдайте значения элементов массива после выполнения указанной операции.

Примеры:

Ввод: 5 Вывод: 3 8 7 4 8
8 7 4 8 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
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    int n, s;
    cin >> n;
    vector <int> v(n);
    for (int i = 0; i < n; ++i){
        cin >> v[i];
    }
    s=v[n-1];
    for (int i = n-1; i >0 ; --i)
    v[i]=v[i-1];
    v[0]=s;
    cout << s << " ";
    for (int i = 0; i < n; ++i){
        if (v[i]!=s){
            cout << v[i] << " ";
        }
    }return 0;
}

Что не так?

И ещё. Можно, пожалуйста, объяснить? Ничего не понимаю (как это решается).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2024, 09:29
Ответы с готовыми решениями:

Циклический сдвиг
Добрый день, столкнулся с такой задачей : для массива вещественных чисел, начинающийся с отрицательного числа осуществить циклический...

Циклический сдвиг
Здравствуйте помогите пожалуйста мне надо все нечетные строки матрицы сдвинуть циклически на К элементов влево. Знаю тут ужас но не...

Циклический сдвиг
Заданы действительные числа a1,a2....a2n.Необходимо получить a1,a2n,a2,a2n-1....an,an+1 Как сделать этот сдвиг?Помогите пожалуйста!

11
1472 / 487 / 72
Регистрация: 22.09.2023
Сообщений: 1,490
13.06.2024, 09:32
Цитата Сообщение от Haker Cat Посмотреть сообщение
C++
1
if (v[i]!=s){
Вот это зачем?
0
 Аватар для Haker Cat
0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 33
13.06.2024, 09:47  [ТС]
Цитата Сообщение от Dushevny Посмотреть сообщение
Вот это зачем?
Не знаю))

Но если это удалить, то вывод будет неправильный
0
1472 / 487 / 72
Регистрация: 22.09.2023
Сообщений: 1,490
13.06.2024, 10:12
Цитата Сообщение от Haker Cat Посмотреть сообщение
Можно, пожалуйста, объяснить? Ничего не понимаю (как это решается).
Может стоит пару лет помесить глину и потом начать сначала, но уже посещая лекции?
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
13.06.2024, 10:14
Цитата Сообщение от Haker Cat Посмотреть сообщение
сдвигать заданный массив на один элемент вправо;
Вправо?

Цитата Сообщение от Haker Cat Посмотреть сообщение
Ввод: 5 Вывод: 3 8 7 4 8
8 7 4 8 3
Мне кажется или в примере сдвиг влево?
0
 Аватар для Haker Cat
0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 33
13.06.2024, 10:19  [ТС]
Цитата Сообщение от Dushevny Посмотреть сообщение
Может стоит пару лет помесить глину и потом начать сначала, но уже посещая лекции?
Я хочу стать инженером-конструктором. Пару лет не найдётся.

Добавлено через 1 минуту
Цитата Сообщение от lemegeton Посмотреть сообщение
Мне кажется или это сдвиг влево?
Не, это вправо.

Добавлено через 53 секунды
То есть: 8 7 4 8 3 -> 3 8 7 4 8

Добавлено через 2 минуты
8 двигает 7, 7 двигает 4, 4 двигает 8, 8 двигает 3 и она (3) идёт в начало.
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
13.06.2024, 10:20
Криво выводите.
Цитата Сообщение от Haker Cat Посмотреть сообщение
C++
1
2
3
4
5
6
cout << s << " ";
    for (int i = 0; i < n; ++i){
        if (v[i]!=s){
            cout << v[i] << " ";
        }
    }
Не нужно выводить последнее значение. Нужно вместо всего этого просто вывести массив
C++
1
2
3
    for (int i = 0; i < n; ++i){
            cout << v[i] << " ";
    }
1
 Аватар для Haker Cat
0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 33
13.06.2024, 10:23  [ТС]
Цитата Сообщение от lemegeton Посмотреть сообщение
Не нужно выводить последнее значение. Нужно вместо всего этого просто вывести массив
Code
1
2
3
for (int i = 0; i < n; ++i){
 cout << v[i] << " ";
 }
3 3 8 7 4 8 вот такой вывод((
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
13.06.2024, 10:25
Лучший ответ Сообщение было отмечено Haker Cat как решение

Решение

Цитата Сообщение от Haker Cat Посмотреть сообщение
3 3 8 7 4 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
#include <iostream>
#include <vector>
 
using std::cin, std::cout, std::vector;
 
int main() {
 
    int n, s;
    cin >> n;
    vector<int> v(n);
    for (int i = 0; i < n; ++i) {
        cin >> v[i];
    }
 
    s = v[n - 1];
    for (int i = n - 1; i > 0; --i) {
        v[i] = v[i - 1];
    }
    v[0] = s;
 
    for (int i = 0; i < n; ++i) {
        cout << v[i] << " ";
    }
    
    return 0;
}
1
 Аватар для Haker Cat
0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 33
13.06.2024, 10:30  [ТС]
Цитата Сообщение от lemegeton Посмотреть сообщение
Весь код:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>
using std::cin, std::cout, std::vector;
int main() {
int n, s;
 cin >> n;
 vector<int> v(n);
 for (int i = 0; i < n; ++i) {
 cin >> v[i];
 }
s = v[n - 1];
 for (int i = n - 1; i > 0; --i) {
 v[i] = v[i - 1];
 }
 v[0] = s;
for (int i = 0; i < n; ++i) {
 cout << v[i] << " ";
 }
return 0;
}
Программа не компилируется
solution.cpp:28:9: error: 'a' does not name a type
a[i]=0.1*(rand()%100);
^
solution.cpp:29:9: error: 'cout' does not name a type
cout << setprecision(1) << fixed << a[i] << " ";
^~~~
solution.cpp:30:5: error: expected declaration before '}' token
}
^


Но все проверки проходит
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
13.06.2024, 10:35
Цитата Сообщение от Haker Cat Посмотреть сообщение
a[i]=0.1*(rand()%100);
Цитата Сообщение от Haker Cat Посмотреть сообщение
cout << setprecision(1) << fixed << a[i] << " ";
В коде нет таких строк.

Цитата Сообщение от Haker Cat Посмотреть сообщение
solution.cpp:28:9
Цитата Сообщение от Haker Cat Посмотреть сообщение
solution.cpp:29:9:
Цитата Сообщение от Haker Cat Посмотреть сообщение
solution.cpp:30:5:
В коде вообще нет 28, 29 и 30 строк. В коде всего 26 строк.

Проверьте, что именно вы собираете.

Добавлено через 50 секунд
Цитата Сообщение от Haker Cat Посмотреть сообщение
Но все проверки проходит
Очевидно вы собираете какую-то фигню, а копипастнули нормальный код.
1
 Аватар для Haker Cat
0 / 0 / 0
Регистрация: 09.06.2024
Сообщений: 33
13.06.2024, 10:36  [ТС]
Спасибо!! Просто на том сайте, где я отправляю ответ, иногда не то вставляется.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2024, 10:36
Помогаю со студенческими работами здесь

Циклический сдвиг.
Нужно написать вот такую прогу, где нужно сдвинуть число а на n бит влево.

Циклический сдвиг
Дано числа b1,b2...b15.Получить b11,b12...b15,b10,b9...b1 Код: #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;cstdlib&gt; ...

циклический сдвиг
написать программу на СИ (обычном ,НЕ Си++), используя символьные массивы : Если число отрицательных элементов масива А чётно,то...

Циклический сдвиг
Ребята, в чем может быть проблема? Надо организовать ф-цию циклического сдвига вправо. ТО бишь x-&gt;y, y-&gt;z, z-&gt;x. Что я делаю не...

Циклический сдвиг
Напишите программу, которая будет циклически сдвигать заданный массив на один элемент вправо, последний элемент при этом должен оказаться...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru