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

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

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

Вывести числа, которые почти равны друг другу (их разность меньше 0,01) - C++

21.05.2014, 22:27. Просмотров 481. Ответов 9
Метки нет (Все метки)

Здравствуйте. Занимаюсь С++ по книге Бьерна Страуструпа. Помогите решить задачу:
Напишите программу, содержащую вектор и цикл while, которая выводит числа, которые почти равны друг другу(их разность меньше 0,01). При этом сначала следует вывести меньшее число, затем большее.

Мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    
    vector<double> numbers;
    double number;
    while(cin>>number)
        numbers.push_back(number);
    sort(numbers.begin(),numbers.end());
    for(int i=0;i<=numbers.size();i++)
    {
        if(i==0||(numbers[i]-numbers[i-1]<0,01))
            cout<<numbers[i-1]<<","<<numbers[i]<<endl;
        else cout<<"net";
    }
    return 0;
}
Подскажите, в чем ошибка. Заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 22:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести числа, которые почти равны друг другу (их разность меньше 0,01) (C++):

Задача страуструпа: Измените программу так, чтобы она выводила числа, которые почти равны друг другу - C++
Есть программа #include &lt;iostream&gt; using namespace std; int main () { double val_1 = 0.0;

Определить какое наибольшее число подряд идущих элементов последовательности равны друг другу - C++
Добрый вечер, решил задачку, но выдаёт ошибку на пятом тесте. У меня два вопроса: Есть ли более простой способ решения и, собственно,...

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

Вывести вместо каждой пары соседних чисел, разность которых меньше заданного числа Е, их среднеарифметическое - C++
решить ОДНУ из трех задач 1. дана убывающая последовательность чисел. вывести вместо каждой пары соседних чисел, разность которых...

Вывести три числа, которые будут равны сторонам треугольника - C++
Привет всем.Только недавно начал учится.Короче такая простая задача:даны 3 переменные типа float надо чтоб она читала и выводила три числа...

На шахматной доске стоят три ферзя. найти ту пару из них которые угрожают друг другу! - C++
помогите пожалуйста, или подскажите как начать)) на шахматной доске стоят три ферзя. найти ту пару из них которые угрожают друг другу!

9
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 00:13 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от BadEvil Посмотреть сообщение
C++
1
for(int i=0;i<=numbers.size();i++)
Выход за границу вектора. i < numbers.size().
1
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
22.05.2014, 00:16 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от BadEvil Посмотреть сообщение
C++
1
numbers[i]-numbers[i-1]
Начните обход с i=1. Тогда не получите индекс -1 в самом начале.
Цитата Сообщение от alsav22 Посмотреть сообщение
Выход за границу вектора
Не успел.
0
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 02:39  [ТС] #4
Исправил, выдает верный ответ+ окно
0
Миниатюры
Вывести числа, которые почти равны друг другу (их разность меньше 0,01)  
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 05:32 #5
Цитата Сообщение от BadEvil Посмотреть сообщение
Исправил
Хотелось бы увидеть: что, как.
0
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 10:00  [ТС] #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
    
    vector<double> numbers;
    double number;
    while(cin>>number)
        numbers.push_back(number);
    sort(numbers.begin(),numbers.end());
    for(int i=1;i<=numbers.size();i++)
    {
        if((numbers[i]-numbers[i-1]<5))
            cout<<numbers[i-1]<<","<<numbers[i]<<endl;
        else cout<<"net"<<endl;
    }
    
    return 0;
}
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 10:33 #7
И что изменилось в i<=numbers.size() (2-й пост)?
0
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 10:53  [ТС] #8
C++
1
for(int i=1;i<=numbers.size();i++)
Начало цикла с 1.
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 11:06 #9
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
???
Цитата Сообщение от alsav22 Посмотреть сообщение
И что изменилось в i<=numbers.size() (2-й пост)?
0
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 11:17  [ТС] #10
Извините, не понял сначала, о чем речь. Спасибо за помощь
0
22.05.2014, 11:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2014, 11:17
Привет! Вот еще темы с ответами:

Даны натуральные числа N, K, L (K<L). Вывести на экран все делители числа N, которые меньше K или больше L - C++
Даны натуральные числа N, K, L (K&lt;L). Вывести на экран все делители числа N, которые меньше K или больше L.

Отсортировать по возрастанию числа и вывести те, которые меньше a - C++
Задание такое : дано некоторое число n , затем вводится n чисел , после этого вводится два числа a и b. Нужно : среди этих n чисел...

Вывести квадраты натуральных чисел, которые меньше указаного числа - C++
вывести квадраты натуральных чисел, которые меньше за указаное число

Определить количество слов в тексте, и вывести слова, которые по длине меньше заданного числа - C++
Помогите написать прогу... Не работает..;) /*Дан текст, в котором слова разделяются пробелами, * в конце стоит точка. Определить...


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

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

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