Log jako szereg, błąd

0

Mam problem z rozwinięciem logarytmu w szereg w C. Kod, który napisałem wygląda tak:

 #include <stdio.h>
#include <stdlib.h>
#include <math.h>


int main()
{
double x,suma=0,w,l1,l2,z;
int i,k,n,m;

do
{
printf("\n podaj x");
k=scanf("%lf",&x);
if (k==0) printf("blad formatu");
fflush(stdin);
} while (k==0);
do
{
printf("\n podaj n");
k=scanf("%d",&n);
if (k==0||k>160) printf("blad formatu");
fflush(stdin);
}
while (k==0||k>160);
for(i=1;i<=n;i++)
    {
    l1=pow(-1,1+i);
    l2=pow(x,i);
    w=l1*l2/i;
    suma=suma+w;
    }
printf("wartosc rowna sie %lf", suma);

}

Gdzie jest błąd, bo chyba ślepy jestem...

0

Co to znaczy że masz problem?
Mama Cię okrzyczała, ktoś ukradł Ci portfel przez ten kod czy co?

PS pewnie chodzi o to, że w drugiej pętli porównujesz k a nie n.

0

A ja tylko wspomnę że kolejny wyraz szeregu można policzyć w prosty sposób poprzez pomnożenie poprzedniego wyrazu przez pewne czynniki. Nie trzeba liczyć potęg za każdym razem a już tym bardziej potęgi -1 ;]
Przykład: jeśli mamy wyrazy szeregu 1-x+x2-x3+x4... to łatwo zauważyć że kolejny wyraz szeregu to poprzedni pomnożony przez -x.

1 użytkowników online, w tym zalogowanych: 0, gości: 1