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

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

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

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

21.05.2014, 22:27. Просмотров 393. Ответов 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;
}
Подскажите, в чем ошибка. Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 22:27     Вывести числа, которые почти равны друг другу (их разность меньше 0,01)
Посмотрите здесь:

C++ Вывести вместо каждой пары соседних чисел, разность которых меньше заданного числа Е, их среднеарифметическое
C++ Отсортировать по возрастанию числа и вывести те, которые меньше a
C++ На шахматной доске стоят три ферзя. найти ту пару из них которые угрожают друг другу!
C++ Определить, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу.
C++ Задача страуструпа: Измените программу так, чтобы она выводила числа, которые почти равны друг другу
C++ Даны натуральные числа N, K, L (K<L). Вывести на экран все делители числа N, которые меньше K или больше L
C++ Вывести три числа, которые будут равны сторонам треугольника
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 00:13     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от BadEvil Посмотреть сообщение
C++
1
for(int i=0;i<=numbers.size();i++)
Выход за границу вектора. i < numbers.size().
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6411 / 3050 / 300
Регистрация: 04.12.2011
Сообщений: 8,237
Записей в блоге: 3
22.05.2014, 00:16     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от BadEvil Посмотреть сообщение
C++
1
numbers[i]-numbers[i-1]
Начните обход с i=1. Тогда не получите индекс -1 в самом начале.
Цитата Сообщение от alsav22 Посмотреть сообщение
Выход за границу вектора
Не успел.
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 02:39  [ТС]     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #4
Исправил, выдает верный ответ+ окно
Миниатюры
Вывести числа, которые почти равны друг другу (их разность меньше 0,01)  
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 05:32     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #5
Цитата Сообщение от BadEvil Посмотреть сообщение
Исправил
Хотелось бы увидеть: что, как.
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 10:00  [ТС]     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #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;
}
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 10:33     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #7
И что изменилось в i<=numbers.size() (2-й пост)?
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 10:53  [ТС]     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #8
C++
1
for(int i=1;i<=numbers.size();i++)
Начало цикла с 1.
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.05.2014, 11:06     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
???
Цитата Сообщение от alsav22 Посмотреть сообщение
И что изменилось в i<=numbers.size() (2-й пост)?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2014, 11:17     Вывести числа, которые почти равны друг другу (их разность меньше 0,01)
Еще ссылки по теме:

Вывести квадраты натуральных чисел, которые меньше указаного числа C++
Выдать пары простых чисел, разность между которыми равна 4, а сами числа меньше n C++
Определить количество слов в тексте, и вывести слова, которые по длине меньше заданного числа C++
Определить какое наибольшее число подряд идущих элементов последовательности равны друг другу C++
C++ Найти все элементы массива, которые меньше или равны своему индексу

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

Или воспользуйтесь поиском по форуму:
BadEvil
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 7
22.05.2014, 11:17  [ТС]     Вывести числа, которые почти равны друг другу (их разность меньше 0,01) #10
Извините, не понял сначала, о чем речь. Спасибо за помощь
Yandex
Объявления
22.05.2014, 11:17     Вывести числа, которые почти равны друг другу (их разность меньше 0,01)
Ответ Создать тему
Опции темы

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