Proszę o wytłumaczenie dlaczego przy wprowadzeniu przykładowych danych -2, 2, 20 program wykrzacza się na -1. Nie wiem dlaczego niejako pomijany jest mój warunek if(x==-1)..., tylko dla wartości x=-1 program próbuje policzyć wartość, z szeregu co skazane jest na niepowodzenie.
#include <stdio.h>
//LICZONY Z SZEREGÓW
void main()
{
double x;
double y;
int n;
double suma,suma1;
double a,b,c;
printf("Podaj konce przedzialow, z ktorego bedzie liczona funkcja: ");
scanf("%lf %lf", &a,&b);
printf("\nPodaj liczbe podprzedzialow: ");
scanf("%lf", &c);
c=(b-a)/c;
printf("\n x szer f(x)");
for(x=a;b>x;x=x+c)
{
if(x==-1) printf("\nc%8.3lf nie ma nie ma",x);
if(x==1) printf("\nc%8.3lf 0.500 0.500",x);
if(x==0) printf("\nc 0.000 1.000 1.000");
if(x!=0 &&(x<-1||x>1) ){
y=1/x;
suma=1/x;
for(n=1;n<100;n++)
{
y=-y*(1/x);
suma = suma + y;
}
suma1=1/(1+x);
printf("\na%8.3lf%8.3lf%8.3lf", x, suma,suma1);}
if(x>-1&&x<1){
y=1;
suma=1;
for(n=1;n<100;n++){
y=-y*x;
suma=suma+y;}
suma1=1/(1+x);
printf("\nb%8.3lf%8.3lf%8.3lf", x, suma,suma1);}
}
}