Dziwny błąd, -nan(ind)

0

Gdy wartość "liczba" jest ujemna wynik sumy szeregu pojawia się jako "-nan(ind), jeżeli potrzebny będzie cały kod mogę go wrzucić.

double szereg(double liczba, double x, double delta, int*wskaznik, int maks)

	double d = 1, s = 1;
	int n = 1, silnia = 1, M = 0;
	do
	{
		silnia = silnia*n;
		d = d*(x*log(liczba)) / n;
		s += d;
		n++;
		M++;

	} while (fabs(d) >= delta || maks == M);
	*wskaznik = M;
	return s;
1

Logarytm liczb ujemnych nie ma rzeczywistych rozwiązań.

d = d*(x*log(liczba)) / n;
0

Dzięki wielkie :)

0

W tym momencie pętla wydaje się nie kończyć, ma ktoś pomysł dlaczego ?

double szereg(double liczba, double x, double delta, int*wskaznik, int maks) //delta - dokladnosc, x - argument d- element sumy - s - suma czy;i f(x)
{

	double d = 1, s = 1;
	int n = 1, silnia = 1, M = 0;
	do
	{
		if (liczba < 0)
		{
			liczba = liczba*(-1);
			silnia = silnia*n;
			d = d*(x*((1 / log(liczba)))) / n;
			s += d;
			n++;
			M++;
			liczba = liczba*(-1);
		}
		else
		{
			silnia = silnia*n;
			d = d*(x*(log(liczba))) / n;
			s += d;
			n++;
			M++;
		}

	} while (fabs(d) >= delta || maks == M);
	*wskaznik = M;
	return s;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.