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

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

Войти
Регистрация
Восстановить пароль
 
defetex
2 / 2 / 1
Регистрация: 08.03.2014
Сообщений: 48
#1

Найти пару чисел и вставить между ними цифру - C++

08.03.2014, 20:00. Просмотров 322. Ответов 6
Метки нет (Все метки)

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
float a,b;
    cout<<"Enter a"<<endl;
    cin>>a;
    cout<<"Enter b"<<endl;
    cin>>b;
 
    
    it=el.begin();
    while(it!=el.end())
    {
        if(*it==a)
        {   it++;
            if(*it==b)
        {
                it--;
                el.insert(++it, 9);
            
            }}
        else if( it!=el.end()) it++;
 
        }
 
    for(it=el.begin();it!=el.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
Программа должна найти пару чисел и вставить между ними 9ку. Вроде работает, но не во всех случаях. Например если ввести 1 1 1 выкидывает с ошибкой
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 20:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти пару чисел и вставить между ними цифру (C++):

Найти максимальный и минимальный элемент последовательности и произведение чисел, расположенных между ними - C++
Здравствуйте. Я предпринял попытку решения задачи &quot;Домашнее задание&quot;. Проблема в том, что на некоторых тестах программа выводит...

Соединить строки, вставить между ними соединительное слово и удалить один вопросительный знак - C++
аны две строки с вопросительными знаками в конце. Соединить их ,вставить между ними соединительное слово и удалить один ВОПРОСИТЕЛЬНЫЙ...

Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили пе - C++
Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если...

Задача на рекурсию. Найти кратчайшее расстояние между городами i и j даже если между ними нет прямой дороги - C++
Дана матрица размером NxN с расстояниями между городами при наличии прямой дороги между ними. По вертикали содержаться города откуда...

Вместо чисел, имеющих в составе цифру P, вставить сумму цифр этого числа - C++
Не понимаю как ее сделать помогите. Разработать программу на языке программирования С++. Дан массив из N целых чисел, где N&lt;=16,...

Массивы. Вместо чисел, имеющих в составе цифру P, вставить сумму цифр этого числа - C++
помогите пожалуйста написать такую программу : Разработать программу на языке программирования С++. Дан массив из N целых чисел, где...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Logumanov
15 / 11 / 2
Регистрация: 06.03.2014
Сообщений: 71
08.03.2014, 20:37 #2
Тебе же два числа ввести надо, а не три.
defetex
2 / 2 / 1
Регистрация: 08.03.2014
Сообщений: 48
08.03.2014, 20:42  [ТС] #3
Logumanov, я о том, что есть список 1 1 1. Ввожу пару 1 1 чтобы между ними вставить 9ку и выдает ошибку.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
08.03.2014, 21:04 #4
строка 12. it != end но ссылается на последний элемент списка. после
выполнения it++ итератор уже невалидный. его можно только с el.end() сравнивать.
но в строке 13 на это забивается и идет попытка разыменовывания:
if(*it==b)
defetex
2 / 2 / 1
Регистрация: 08.03.2014
Сообщений: 48
08.03.2014, 21:10  [ТС] #5
DU, Не подскажите как можно решить эту проблему?
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
08.03.2014, 21:28 #6
бегать до предпоследнего а не до последнего:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  std::list<int>::iterator end = el.end();
  --end;
 
  while (it != end)
  {
    if (*it == a)
    {
      it++;
      if (*it == b)
      {
        it--;
        el.insert(++it, 9);
      }
    }
    else if (it != end)
    {
      it++;
    }
  }
работать будет с std::list. для других контейнеров нужно учитывать
наступление невалидности итераторов после изменения контейнера.
defetex
2 / 2 / 1
Регистрация: 08.03.2014
Сообщений: 48
08.03.2014, 23:12  [ТС] #7
[img]http://i023.***********/1403/7a/78c0ed3428e6.jpg[/img]
Ничего не изменилось( Так же выдает ошибку

Добавлено через 1 час 22 минуты
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 23:12
Привет! Вот еще темы с ответами:

Написать функцию, принимающую параметрами 2 целых числа, и возвращающую сумму чисел из диапазона между ними - C++
Написать функцию, которая получает в качестве параметров 2 целых числа и возвращает сумму чисел из диапазона между ними.

Даны два натуральных числа. Определить сколько чисел на отрезке между ними являются факториалами - C++
Даны два натуральных числа. Определить сколько чисел на отрезке между ними являются факториалами. Пожалуйста помогите написать программу....

Найти максимальный и минимальный элементы матрицы, и сумму элементов между ними - C++
на си: Дана матрица вещественных чисел. Найти максимальный и минимальный элементы, вывести все элементы, заключенные между ними и...

Найти минимум и максимум в массиве, их номера, количество элементов между ними - C++
Доброе время суток. возникает такая ошибка в задаче: в одномерном массиве найти минимум максимум с их номерами и определить количество...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.03.2014, 23:12
Ответ Создать тему
Опции темы

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