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

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

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

Вставка элементов одной последовательности в другую так, чтобы вторая последовательность осталась невозрастающей - C++

25.10.2012, 21:45. Просмотров 331. Ответов 1
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
vector <int> vctavka(vector <int> posledovatelnost, vector <int> b)
{
for(unsigned i=0;i<=posledovatelnost.size()-1;i++)
{
if((posledovatelnost[i]<=b)&&(posledovatelnost[i+1]>=b))
{
for(unsigned j=posledovatelnost.size()-1;j>i;j--)
    {posledovatelnost[j]=posledovatelnost[j-1];}
posledovatelnost[i+1]=b;
}
return posledovatelnost;
}
}
программа должна сравнить элементы вектора posledovatelnost с элементом вектора b, и вставить элемент вектора b в вектор posledovatelnost так чтобы последовательность осталась не возрастающей
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2012, 21:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вставка элементов одной последовательности в другую так, чтобы вторая последовательность осталась невозрастающей (C++):

Массив: Вставить в последовательность действительное число b так, чтобы последовательность осталась неубывающей. - C++
дана последовательность действительных чисел. вставить в нее действительное число b так, чтобы последовательность осталась неубывающей. ...

Найти наименьшее число элементов, которые надо удалить, чтобы осталась возрастающая последовательность - C++
Помогите с прогой. Надо в одномерном массиве найти наименьшее число элементов,которые надо удалить,чтобы осталась возрастающая...

Изменить класс Proxy так, чтобы он позволял динамически переключаться с одной реализации на другую - C++
В этом упражнении используется архитектурная идиома, в которой задействован так называемый заместитель (ргоху). Начните с создания базового...

Сколькими способами можно изменить заданную последовательность, чтобы она осталась возрастающей? - C++
Дана последовательность из N различных чисел. Сколькими способами можно удалить из нее ка- кие-то числа, чтобы оставшаяся...

Даны две последовательности , выяснить,является ли вторая последовательность подпоследовательностью первой - C++
Вот такая задача : даны две последовательности x . . x и y . . y целых чисел. Выяснить, является ли вторая последовательность...

Вывести на экран m первых элементов последовательности так, чтобы их сумма оказалась меньше 1000 - C++
Вывести на экран m первых (a1, a2, …) элементов последовательности an=2+2n², так, чтобы их сумма оказалась меньше 1000, а сумма m+1 первых...

1
John Prick
824 / 757 / 152
Регистрация: 27.07.2012
Сообщений: 2,156
Завершенные тесты: 3
25.10.2012, 22:36 #2
1) вы вставляете в вектор (суть - контейнер с элементами) новый элемент. Поэтому параметрами вашей функции должны быть: а) сам вектор, б) элемент. У вас же 2 вектора. Должно быть так:
C++
1
vector<int> vctavka(vector<int> posledovatelnost, int b)
2) Вставляя новый элемент в контейнер нужно увеличить его размер. При обращении к элементам вектора через оператор[] этого не происходит. Перед вставкой нужно увеличить размер вектора на 1.

3)
C++
1
2
3
4
for(unsigned i=0;i<=posledovatelnost.size()-1;i++)
{
if((posledovatelnost[i]<=b)&&(posledovatelnost[i+1]>=b))
//...
Когда i дойдёт до значения size() - 1 в строке posledovatelnost[i+1] будет обращение к элементу с индексом == size() - выход за пределы вектора.
Лучше делать так:
C++
1
2
3
4
for(unsigned int i = 1; i < posledovatelnost.size(); ++i)
{
    if ((posledovatelnost[i - 1] <= b) && (posledovatelnost[i] >= b))
//...
Пока это.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2012, 22:36
Привет! Вот еще темы с ответами:

Проверить, входят ли числа одной последовательности в другую - C++
Даны натуральное число n, целые числа а1, а2, … , а10, b1, b2, … , bn. Среди а1, а2, … , а10 нет повторяющихся чисел, нет их и среди b1,...

Определить: наибольшее количество элементов в невозрастающей серии элементов - C++
Дана числовая последовательность целых чисел, содержащая N элементов. Определить: наибольшее количество элементов в невозрастающей серии...

Сделать так, чтобы после ввода одного значения массива, не перескакивало на другую строку - C++
Возможно ли, и если возможно, то как, сделать так, чтобы после ввода одного значения массива, не перескакивало на другую строку? for...

Задача:Разбить последовательность чисел от 1 до N^2 на N последовательностей так, чтобы все - C++
Задача:Разбить последовательность чисел от 1 до N^2 на N последовательностей так, чтобы все они состояли из N чисел и имели равные суммы....


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

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

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