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

Почему -inf

09.10.2018, 14:41. Показов 11233. Ответов 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,536
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Вот уже год прошел, как у меня домен в reg.ru ...
Etyuhibosecyu 16.04.2026
И ничего они мне не сделали. Если отвязать карту, никакие услуги они не навяжут. Я бы с радостью продлил еще на два года, чтобы не мучиться с временным доменом и меня уже знали по red-star-soft. com,. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача №1: при указании работ (справочник РаботыПоРемонтуСпецтехники),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru