В ответе выводится 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. Я так понял, это получается либо бесконечно малое, либо бесконечно большое число. Подскажите, пожалуйста, где ошибка?
n не инициализирована
inf и есть значение. Это обозначение бесконечности. А в программе куча ошибок, так что может получаться что угодно.
ну у тебя тут вообще полная каша