Дан линейный массив на N элементов. Выполнить циклический сдвиг всех его элементов на один влево начиная с первого нулевого элемента. Нулевой элемент обязательно существует.
input: 1 0 3 4 5
output: 1 3 4 5 0
Написал код, все ручные проверки проходит, но сайт не принимает как верное решение.
#include <iostream>
using namespace std;
int main()
{
int n,from;
cin >> n;
int arr[n];
for (int i=0;i<n;i++)
{
cin >> arr[i];
if (arr[i]==0) from=i;
}
for(int i=from+1;i<n;i++)
{
arr[i-1]=arr[i];
}
arr[n-1]=0;
for (int i=0;i<n;i++)
{
cout << arr[i] << " ";
}
return 0;
}
Если будет несколько нулей, запомнится (как говорил Штирлиц) последняя позиция :
for (int i=0;i<n;i++)
{
cin >> arr[i];
if (arr[i]==0) from=i;
}
Во первых обратите внимание на комментарий: "Массив с размером, задаваемым переменной - это VLA из языка С. В языке С++ нет VLA и размер массива может задаваться только константным целочисленным выражением. – AnT
". Во вторых, инструментами C++, это можно написать гораздо проще. Например:
std::valarray<int> v{1, 6, 0, 11, 3, 0, 4, 5};
for (size_t i = 0; i < v.size(); ++i)
if(!v[i]) {
const std::slice_array<int>& s = v[std::slice(i, v.size() - i, 1)];
std::valarray<int> v1(s);
s = v1.cshift(1);
//т.е. в данный срез копируем циклически сдвинутую
//последовательность этого же среза
break;
}
for (int i : v)
cout << i << ' ';
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу подключить библиотеку variant (Которая на некоторых сайтах указывается как стандартная и есть на С++17), но мне выдает ошибку No such file or directory
Всем привет! Такой вопросНастроил эффект ripple на кнопку
Запускаю через Jenkins тест на виртуальной машинеОн проходит успешно, но на моменте записи результатов об окончании теста возникает ошибка: