Top.Mail.Ru
Ответы

В ответе выводится inf вместо значения (Язык си)

Вот код:
#include
#include
#include

long int fact(long int a)
{
int n;
long int i=1;
for (i=1; i<=n; i++)
a*=i;
}
double f(double i)
{
int n;
float x;
i = pow(-x, 2*n+1)/2*fact(n);
return i;
}

int main()
{
setlocale(LC_ALL,"Rus");
float x, e, current, prev, sum =0;
long int n, a;
printf("Введите точность e в диапазоне (0,1>e>0)\n");
scanf("%f", &e);
printf("Введите x не равный диапазону e\n");
scanf("%f", &x);
current = f(n);
sum += current;
n++;
do
{
prev = current;
current = f(n);
sum += current;
n++;
}
while (abs(current - prev)>e);
printf("Сумма равна %f\n", sum);
return 0;
}

Но в ответе вместо значения выводится inf. Я так понял, это получается либо бесконечно малое, либо бесконечно большое число. Подскажите, пожалуйста, где ошибка?

По дате
По рейтингу
Аватар пользователя
Новичок
5лет

n не инициализирована

Аватар пользователя
Искусственный Интеллект
5лет

inf и есть значение. Это обозначение бесконечности. А в программе куча ошибок, так что может получаться что угодно.

Аватар пользователя
Мудрец
5лет

ну у тебя тут вообще полная каша