0 / 0 / 0
Регистрация: 25.04.2021
Сообщений: 70
1

Найти ошибку в программе

15.06.2021, 09:19. Показов 974. Ответов 4
Метки c++ (Все метки)

Нужно найти суммирование ln(i/(i*i+1)) с шагом i от 1 до 10 и вывести результат в виде таблице. У меня почему-то все значения не отображаются и выводятся в виде "-inf"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
    double x, sum = 0;
    for (int i = 1; i < 11; i++)
    {
        x=log10(i/(i*i+1));
        sum=sum+x;
        cout << i <<") " << "x = " << x << " | " << "SUMMA: " << sum << endl;
    }   
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2021, 09:19
Ответы с готовыми решениями:

Найти ошибку в программе: в visual studio выдает ошибку
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() ...

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

Найти ошибку в программе
Где ошибка в программе: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; #include...

Найти ошибку в программе
Помогите найти ошибку. #include &lt;iostream&gt; using namespace std; int main() { int...

4
Модератор
Эксперт С++
12098 / 9771 / 5908
Регистрация: 18.12.2011
Сообщений: 26,229
15.06.2021, 09:33 2
Цитата Сообщение от Канеки Кен Посмотреть сообщение
i/(i*i+1)
Для любого i это выражение равно нулю.
Догадайтесь с трех раз, почему!
Кстати, компилятор предупреждает о том, что тут что-то не так
Ошибка 1 error C2668: log10: неоднозначный вызов перегруженной функции d:\test.cpp 9
0
0 / 0 / 0
Регистрация: 25.04.2021
Сообщений: 70
15.06.2021, 09:48  [ТС] 3
Не знаю. Для i=2 ln(0.4) = − 0.91629073187415. Я использую тип double с плавающей точкой. Все должно работать.
0
Модератор
Эксперт С++
12098 / 9771 / 5908
Регистрация: 18.12.2011
Сообщений: 26,229
15.06.2021, 10:52 4
Лучший ответ Сообщение было отмечено Канеки Кен как решение

Решение

Эх, Канеки Кен, Канеки Кен.....
i - целое число
i*i+1 - тоже целое.
Следовательно результат деления тоже ЦЕЛЫЙ и равен нулю.
Компилятор предупреждает о том, что аргумент у log10 целочисленный
и непонятно, к чему его приводить, float, double или long double.
C++
1
2
x=log10(i/(i*i+1.0));// i*i+1.0 имеет тип double
x=log10(i/((double)i*i+1));// так тоже знаменатель будет double
Советую взять себе за правило, что в выражениях, которые априори считаются действительными,
константы всегда задавать действительными.
1
0 / 0 / 0
Регистрация: 25.04.2021
Сообщений: 70
15.06.2021, 11:31  [ТС] 5
понял, спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2021, 11:31
Помогаю со студенческими работами здесь

найти ошибку в программе
Сортировка вещественных чисел из файла методом пузырька #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt;...

Найти ошибку в программе
#include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;vector&gt; using namespace std; int main(){...

Найти ошибку в программе
Найти ошибку в программе(связано с неправильным использованием указателя). Как можно исправить...

Найти ошибку в программе
#include &lt;stdafx.h&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;ctime&gt;...

Найти ошибку в программе
Найти к-е число Фибоначчи,такое,что x(k-1)&lt;a&lt;x(k). Числа Фибоначчи:x(1)=x(2)=1;x(k)=x(k-2)+x(k-1) ...

найти ошибку в программе
Программа должна обеспечивать ввод с клавиатуры числа от 0 до 255 (типа unsight char), переводить...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru