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

Число e = 2? :D - C++

Восстановить пароль Регистрация
 
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
27.12.2011, 23:49     Число e = 2? :D #1
Где-то спряталась проклятая логическая ошибка, из-за которой программа упрямо говорит, что е = 2.
Гляньте, пожалуйста, незамыленным взглядом, чо где:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
     int i = 1;
     double e = 1.0, f1, f2 = 1.0;
     
     for(;;)
     {
         e += 1 / factorial( i );
         i++;
         
         f1 = f2;
         f2 = e;
         
         cout << i - 1 << setw( 15 ) << e << setw( 20 ) << windowsStandart() 
              << setw( 20 ) << sigma( e ) << setw( 9 ) << "|" <<  endl;
         
         if( abs( ( f2 - f1 ) ) < eps )
             break;
     }
Функция факториала точно правильная.
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2011, 23:49     Число e = 2? :D
Посмотрите здесь:

Дано целое число. Вывести его строку-описание вида «отрицательное чет-ное число», «нулевое число», «положительное нечетное число» и т. д. C++
Дано действитёльное число х. Получить целую часть *) числа х; затем — число х, округленное до ближайшего целого; затем — число х без дробных цифр. C++
Дано 2-ух-значное число. Сделать так, чтоб программа преобразовала это число в новое число кол-во десятков C++
Некоторое число оканчивается на 2. Если же эту его последнюю цифру переставить на первое место, то число удвоится. Найти это число C++
C++ Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
27.12.2011, 23:59     Число e = 2? :D #2
Цитата Сообщение от vortexx1 Посмотреть сообщение
e += 1 / factorial( i );
C
1
e += 1. / factorial( i );
Надо ж так! Из-за какой-то ерундовой точки столько хлопот!
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
28.12.2011, 00:02  [ТС]     Число e = 2? :D #3
Спасибо, сам бы никогда не догадался )
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
28.12.2011, 00:05     Число e = 2? :D #4
Цитата Сообщение от vortexx1 Посмотреть сообщение
Функция факториала точно правильная.
Кстати, ее тоже не грех показать. Если она возвращает double, то дело не в точке. А если int - то она родимая!
Пример: cout << 1/2 напечатает 0

Добавлено через 2 минуты
Цитата Сообщение от vortexx1 Посмотреть сообщение
Спасибо, сам бы никогда не догадался )
Не ты первый, и к сожалению, не последний. Но пока на эти грабли не наступишь, шишка не вырастет
vortexx1
 Аватар для vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
28.12.2011, 00:06  [ТС]     Число e = 2? :D #5
Факториал возвращает int.
Всё заработало, спасибо большое
Yandex
Объявления
28.12.2011, 00:06     Число e = 2? :D
Ответ Создать тему
Опции темы

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