С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/55: Рейтинг темы: голосов - 55, средняя оценка - 4.60
2 / 1 / 1
Регистрация: 20.09.2018
Сообщений: 17

Почему -inf

09.10.2018, 14:41. Показов 11130. Ответов 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 area(int length, int width) // calculate area of a rectangle
{
    return length * width;
}
int framed_area(int x, int y) // calculate area within frame
{
    return area(x - 2, y - 2);
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    int x = -1;
    int y = 2;
    int z = 4;
    
    int area1 = area(x, y);
    int area2 = framed_area(1, z);
    int area3 = framed_area(y, z);
    double ratio = double(area1) / area3; // convert to double to get
    cout << "\n" << area1 << " " << area2 << " " << area3 << " " << ratio;
    // floating-point division
}
Жду ошибки деления на ноль, но получаю -2 -2 0 -inf. Что за inf и почему не divizion by zero? И когда, можно кратко, я буду получать этот -inf, а когда ошибку деления на ноль?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.10.2018, 14:41
Ответы с готовыми решениями:

Почему в ответе inf ?
Уважаемые гуру, помогите решить проблему. Компилил программу из учебника Праты &quot;Язык программирования С++ лекции и упражнения...

Почему выдает inf в выводе
Задание было таким. Для заданного натурального к и действительного х подсчитать следующие выражения: #include &lt;iostream&gt; ...

Почему при вводе чисел в ответе выводит #INF
где ошибка почему при вводе чисел в ответе выводит #INF #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;windows.h&gt; ...

3
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
09.10.2018, 14:48
Лучший ответ Сообщение было отмечено andrewkop85 как решение

Решение

Цитата Сообщение от andrewkop85 Посмотреть сообщение
И когда, можно кратко, я буду получать этот -inf, а когда ошибку деления на ноль?
у чисел с точкой будешь получать+-inf у целых - ошибку...
наверное...
вообще это никак не определено.
0
2 / 1 / 1
Регистрация: 20.09.2018
Сообщений: 17
09.10.2018, 14:53  [ТС]
т.е. зависит от компилятора?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
09.10.2018, 16:20
Цитата Сообщение от andrewkop85 Посмотреть сообщение
Жду ошибки деления на ноль, но получаю -2 -2 0 -inf. Что за inf
inf - infinity (бесконечность)

Цитата Сообщение от andrewkop85 Посмотреть сообщение
почему не divizion by zero?
For IEEE floats, division of a finite nonzero float by 0 is well-defined and results in +infinity (if the value was >zero) or -infinity (if the value was less than zero). The result of 0.0/0.0 is NaN. If you use integers, the behaviour is undefined.
поведение одинаковое для всех потовых компиляторов (cl/gcc/clang)

но нужно иметь ввиду, что формально делить на ноль нельзя.
в некоторых случаях компилятор может пофиксить это ещё времени компиляции,
и интерпритировать как ошибку.
это вытекает из совместимости языка с++ с языком си
(эту информацию нужно проверить)

Note that C standard says (6.5.5):
The result of the / operator is the quotient from the division of the first operand by the second; the result of the % operator is the remainder. In both operations, if the value of the second operand is zero, the behavior is undefined.

пример:
https://rextester.com/MRWRC34846

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
int main()
{
    const double v1 = 1.0;
    const double v2 = 0.0;
    const double v3 = v1/v2;
    std::cout << v3 << '\n';
}
Error(s):
source_file.cpp(7): error C2124: divide or mod by zero
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.10.2018, 16:20
Помогаю со студенческими работами здесь

Почему при выводе значения переменной выводиться inf?
При выводе z выводится inf #include &lt;iostream&gt; void main() { double n, b, x, y, z; n = 2; b = -0, 12; x = 1, 3 *...

#INF C++
double x, y, z; cout &lt;&lt; &quot;x,y,z&quot;; cin &gt;&gt; x &gt;&gt; y &gt;&gt; z; double a = log(fabs(((y - sqrt(fabs(x))))*(x - y / (z + pow(x, 2) /...

Что такое inf?
Вопрос может очень глупый, но я только учусь. Подскажете пожалуйста, умные люди, что такое inf в C++?

Что означает -1#INF
Здравствуйте! При вводе Х отличного от 2, после 4 итераций программа начинает выдавать -1#INF, я так понимаю, что оно пытается делить на...

Аналог Inf матлаба
Есть ли в С++ аналог Inf, который имеется в Matlab'e?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru