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

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

Войти
Регистрация
Восстановить пароль
 
Fokysnik
Сообщений: n/a
#1

Не работает элементарнейший код - C++

05.06.2012, 01:10. Просмотров 288. Ответов 3
Метки нет (Все метки)

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
int _tmain()
{
    vector<double> numbers;
    double number = 0;
    const double abs_mistake = 0.1;
    double num_mistake = 0;
 
    cout << "Input 2 numbers and press '|': \n"; 
    while(cin >> number)
        numbers.push_back(number);
 
    sort(numbers.begin(),numbers.end());
 
        num_mistake=abs(numbers[1]-numbers[0]);
    //cout << num_mistake << " " << abs_mistake << endl;
 
    if(num_mistake==abs_mistake)// когда я ввожу два числа к примеру 23 и 23.1 то при выходит что переменная  num_mistake==0.1 и условие должно срабатывать, а оно не срабатывает 
    {
        cout << numbers[0] << " ~~ " << numbers[1] << endl;
        cout << "Two numbers are almost equal!!!\n";
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2012, 01:10     Не работает элементарнейший код
Посмотрите здесь:

Не работает код - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;map&gt; #include &lt;string&gt; using namespace std; multimap &lt;string,...

Не работает код - C++
char a; int i=0,y; using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); ifstream...

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

Код не работает. - C++
Всем доброго времени суток. Суть проблемы. Написал задачу, на нахождение площади грани, площади полной поверхности и объем куба. при старте...

Не работает код - C++
Помогите пожалуйста перепробовал уже все компиляторы ... не хочет запускаться данный код ( думал на visual C++ 6.0 все запустится но...

Не работает код! - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; #include &lt;process.h&gt; #include &lt;windows.h&gt; const int LEN=80; const...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soft.creator
104 / 104 / 4
Регистрация: 17.10.2010
Сообщений: 283
05.06.2012, 10:57     Не работает элементарнейший код #2
C++
1
if(num_mistake==abs_mistake)
Так никто не делает. У Вас num_mistake может быть равен 0.099999999, и это число не равно 0.1. Подобные условия нужно записывать как
C++
1
if (fabs(num_mistake - abs_mistake) < 1e-6)
Вместо 1e-6, конечно, может быть другое маленькое число, оно зависит от точности, с которой хочется сравнивать числа
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.06.2012, 11:07     Не работает элементарнейший код #3
Цитата Сообщение от Fokysnik Посмотреть сообщение
if(num_mistake==abs_mistake)
double на точное равенство сранивать не надёжно из-за ошибок округления.
C++
1
2
3
4
5
6
7
8
double x, y, d, e;
d=0.1;
x=1.1;
y=1.2;
e=y-x;
if (e==d) //  поведение этой альтернативы слабо предсказуемо.
{
}
Добавлено через 1 минуту
То же относится и к float, и к long double, и к extended, и вообще ко всем вещественным типам во всех языках.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2012, 17:12     Не работает элементарнейший код
Еще ссылки по теме:

Не работает код - C++
Помогите исправить ошибки

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

Не работает код - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; main() { int X,A,i; int flag=0; printf( &quot;massiv: \n&quot;); for (int...

Код не работает - C++
#include &quot;stdafx.h&quot; int _tmain(int argc, _TCHAR* argv) { int i; for(i=1, i&lt;=100; ++i); { printf(&quot;%d&quot;, i); { ...


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

Или воспользуйтесь поиском по форуму:
Fokysnik
Сообщений: n/a
05.06.2012, 17:12     Не работает элементарнейший код #4
Спасибо!!! Я новичок потому я не знал этого!!!!!!!
Yandex
Объявления
05.06.2012, 17:12     Не работает элементарнейший код
Ответ Создать тему
Опции темы

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