Log jako szereg, błąd

Log jako szereg, błąd
NO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

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

Kopiuj
 #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...

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
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.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

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.