Что такое inf в c
Перейти к содержимому

Что такое inf в c

  • автор:

В чем ошибка в коде? C++ Пишется -inf в консоле

inf — от слова infinity, бесконечность.
Твой результат равен минус бесконечности.

А причина может быть в делении на ноль.
При делении на ноль частное равно бесконечности.

Каким образом может быть b = 0?

Я сидел и думал: чему равен синус от y=1 радиана?
Вроде положительное число. Если прибавить его к 0,5, то по-любому ноль не выйдет.

А потом я заметил:

Дело в том, что в английским языке и в языках программирования дроби записываются через точку, а не через запятую.

А в языке C++ еще веселее: есть специальный оператор «запятая».

По сути, выражение b = 0,5 + sin(y) означает примерно следующее:

«В переменную b запишите 0, а вот тут еще есть выражение 5 + sin(y), с ним ничего делать не надо, оно просто тут лежит».

Как исправить: заменить запятую в дроби на точку.

Дима АльжевУченик (230) 3 года назад
Спасибо большое, выручил.
Остальные ответы

Всё работает.

И зачем все эти промежуточные переменные?

Что такое inf?

Author24 — интернет-сервис помощи студентам

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

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из.

El. Psy. Congroo.
110 / 92 / 32
Регистрация: 09.01.2018
Сообщений: 344

Добавлено через 3 минуты
целочисленный тип данных, если это так.

Почему -inf

Author24 — интернет-сервис помощи студентам

Жду ошибки деления на ноль, но получаю -2 -2 0 -inf. Что за inf и почему не divizion by zero? И когда, можно кратко, я буду получать этот -inf, а когда ошибку деления на ноль?

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Почему в ответе inf ?
Уважаемые гуру, помогите решить проблему. Компилил программу из учебника Праты "Язык.

Почему выдает inf в выводе
Задание было таким. Для заданного натурального к и действительного х подсчитать следующие.

Почему при вводе чисел в ответе выводит #INF
где ошибка почему при вводе чисел в ответе выводит #INF #include <iostream> #include <math.h> .

4062 / 3316 / 924
Регистрация: 25.03.2012
Сообщений: 12,477
Записей в блоге: 1

Лучший ответ

Сообщение было отмечено andrewkop85 как решение

Решение

ЦитатаСообщение от andrewkop85 Посмотреть сообщение

Почему результат выводится inf?

Добрый день! Рассчитыва арифметическое выражение — сумму ряда с факториалом.. Если задаю сумму ряда длиной до 6, то все работает, если длину ряда задаю n = 6, то в консоли выскакивает вместо результата inf.

Подскажите, пожалуйста, в чем может быть проблема?

пс. факториал считается правильно.. проверяла. проблема именно в сумме ряда.

using namespace std; int factorial (int n); int main() < double sum = 0.0; int n, x; cout > n; cout > x; for (int i = 1; i cout int factorial(int n) < if (n >1) < return n * (factorial(n - 1)); >else < return 1; >>
  • Вопрос задан более трёх лет назад
  • 20080 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 2

пс. факториал считается правильно.. проверяла. проблема именно в сумме ряда.

Проверьте еще раз, например на таком примере: factorial(36)
Вспомним, что факториал — число большое, а в int влезает не так много. А что у нас там является результатом знакового переполнения в C++, напомните?

Ответ написан более трёх лет назад
Нравится 3 8 комментариев
Мария @missbells Автор вопроса
точно))) вылазит деление на 0 из-за этого факториала, по ходу.. спасибо за подсказку!

Мария, Переведите расчет факториала на int64_t — увеличите диапазон, но, конечно всему есть предел. Так что надо опытным путем установить на каком n он наступит и ввести соответствующее ограничение.

Мария @missbells Автор вопроса

res2001, большое спасибо!! даже не знала, что такой тип данных есть.. а то пробовала long и тоже не работало. Но и int64_t при n=9 уже все ломается ))) больше, я так понимаю, уже не бывает?

Мария, Встроенных типов больше нет. Если нужно больше то придется использовать какие-либо библиотеки для работы с большими числами.
int64_t — это long long int

Мария @missbells Автор вопроса

Мария, а вот кстати если задать double factorial(), то вообще выдает факториал любого числа. просто с экспонентой )))

если задать double factorial(), то вообще выдает факториал любого числа.

Только неправильный.
double при переполнении теряет точность.
Мария @missbells Автор вопроса
terrier, а как тогда быть?

Мария, Ну, смотря, что вы хотите сделать. Если вас устроит, что максимальный факториал, который вы можете вычислить своей программой — это 20! , то используйте unsigned long long. Если же вам нужно вычислять бОльшие факториалы, то вам нужна некая реализация длинной арифметики. Например, GMP популярная библиотека для C/C++ . Ни или что-то такое

Программист на «си с крестами» и не только

У нас тут переполнение, 36! не влезает в тип int. Сделайте хотя бы double.

Inf («машинная бесконечность») — обычно результат дробного деления на ноль. Почему? Посчитаем, сколько двоек в 36!
Делятся на 2 — 18 сомножителей.
И ещё на 4 — 9 шт.
И ещё на 8 — 4 шт.
И ещё на 16 — 2 шт.
И ещё на 32 — 1 шт.
Итого в составе 36! будет 34 двойки, то есть 36! делится на 2 34 . Разумеется, целочисленная арифметика, работающая в кольце остатков от деления на 2 32 , даст ноль. При этом, разумеется, 32-битный регистр многократно и безнадёжно переполнится.

Более сложный способ расчёта ряда — рекуррентное соотношение. Очередное слагаемое поделим на две части: ai = (2i)! / i²! и bi = |x| / i²!. Постройте, как соотносятся ai−1 и ai, аналогично для b.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

cpp

  • C++

Как передать в аргумент функцию, и выполнить её, передаваю в неё параметры?

  • 1 подписчик
  • 13 часов назад
  • 88 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *