Muszę napisać taką funkcję:
Napisz funkcję float suma(float x, float epsilon), która dla x z przedziału (0, 1) wyznaczy sumę szeregu: 1 + x/1 + x2/2 + ... + xi/i. Sumowanie przerwij jeżeli kolejny składnik będzie mniejszy od zadanej dokładności epsilon.
Napisałem coś takiego:
float suma(float x, float epsilon);
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main()
{
float x=1, epsilon=1/100;
printf("%f",suma(x,epsilon));
return 0;
}
float suma(float x, float epsilon)
{
float szereg=0;
for(int i=0; i<1000; i++)
{
szereg=szereg+(pow(x,i)/i);
if((pow(x,i))/i<epsilon)
break;
}
return szereg;
}
Niestety nie wyświetla się poprawny wynik. Pojawia się tylko napis "inf".
Mógłby ktoś przeanalizować, co zrobiłem źle?