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

Как вернуть NaN и Infinity, проверить на NaN и Infinity? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Быстрое программирование http://www.cyberforum.ru/cpp/thread266617.html
Расскажите что это такое. Ничего толкового ни на русском ни на английском не нашел. Только пару книг, но их надо покупать.
C++ структуры Создать массив структур для учета занятости аудитории: день недели, время учебной пары, аудитория, название предмета. Реализовать поиск периодов времени, когда выбранная аудитория свободна. помогите пожалуйста!!! http://www.cyberforum.ru/cpp/thread265832.html
C++ Блок схемы
Здравствуйте, есть три задачи. Нужно составить блок-схему алгоритма к ним. У самого ничего не получается, помогите пожалуйста. 1.Вывести сообщение "да", если в массиве А(9) имеется хотя бы одна пара равных элементов, стоящих рядом. 2. В одномерном массиве найти сумму тех элементов массива, значения которых больше 4 и при этом индекс кратный 4 3. В заданном массиве A(N) отрицательные...
Как вызвать скрипты powershell из программы, написанной на с++ C++
Собственно задача в следующем, есть скрипты обращения к базе данных AD, вывод результата на стандартную консоль. Нужно из программы на visual С++ отработать скрипт и выходную информацию записать в переменную для последующей обработки и вывода. За ранее благодарен.
C++ Является ли чило автоморфным? http://www.cyberforum.ru/cpp/thread265270.html
Дано натуральное число N. Определить, является ли оно автоморфным. Автоморфное число N равняется последним разрядам квадрата этого числа. Например, числа 5, 6, 25, поскольку 52=25, 62=36, 252=625.
C++ Ошибки в коде. Мне нужно было создать класс, который бы вставлял, удалял комплексные числа в массиве. Поиск элемента должен производиться двоичным поиском #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; struct CComplex { подробнее

Показать сообщение отдельно
Cuellius
181 / 89 / 64
Регистрация: 23.06.2015
Сообщений: 237
Завершенные тесты: 3
19.07.2015, 14:41     Как вернуть NaN и Infinity, проверить на NaN и Infinity?
Цитата Сообщение от taras atavin Посмотреть сообщение
Как вернуть NaN и Infinity
NaN = 0.0 / 0.0
Infinity = 1.0 / 0.0
-Infinity = -1.0 / 0.0

Цитата Сообщение от taras atavin Посмотреть сообщение
проверить на NaN и Infinity?
Есть функции std::isnan и std::isinf
Кроме того, с +бесконечностью или с -бесконечностью можно сравнить с помощью оператора ==
C NaN такое не прокатит, ибо NaN ничему не равен, даже другому NaN

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
 
int main()
{
    double infinity = 1.0 / 0.0;
    double minfinity = -1.0 / 0.0;
    double minfinity2 = -7.0 / 0.0;
    double nan = 0.0 / 0.0;
    double nan2 = 0.0 / 0.0;
    std::cout << infinity << std::endl;
    std::cout << minfinity << std::endl;
    std::cout << nan << std::endl;
    std::cout << std::isnan(infinity) << ' ' << std::isinf(infinity) << std::endl;
    std::cout << std::isnan(minfinity) << ' ' << std::isinf(minfinity) << std::endl;
    std::cout << std::isnan(nan) << ' ' << std::isinf(nan) << std::endl;
    std::cout << (infinity == minfinity2) << std::endl;
    std::cout << (infinity == (7.0 / 0.0)) << std::endl;
    std::cout << (minfinity == minfinity2) << std::endl;
    std::cout << (nan == nan2) << std::endl;
    std::cout << (infinity == nan2) << std::endl;
    return 0;
}
Для компилятора от Microsoft
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
28
#include <iostream>
#include <cmath>
 
double GetZero()
{
    return 0.0;
}
 
int main()
{
    double infinity = 1.0 / GetZero();
    double minfinity = -1.0 / GetZero();
    double minfinity2 = -7.0 / GetZero();
    double nan = 0.0 / GetZero();
    double nan2 = 0.0 / GetZero();
    std::cout << infinity << std::endl;
    std::cout << minfinity << std::endl;
    std::cout << nan << std::endl;
    std::cout << std::isnan(infinity) << ' ' << std::isinf(infinity) << std::endl;
    std::cout << std::isnan(minfinity) << ' ' << std::isinf(minfinity) << std::endl;
    std::cout << std::isnan(nan) << ' ' << std::isinf(nan) << std::endl;
    std::cout << (infinity == minfinity2) << std::endl;
    std::cout << (infinity == (7.0 / GetZero())) << std::endl;
    std::cout << (minfinity == minfinity2) << std::endl;
    std::cout << (nan == nan2) << std::endl;
    std::cout << (infinity == nan2) << std::endl;
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru