Byłby ktoś tak dobry i wskazał mi gdzie mam błąd w tym programie? Przy liczeniu pierwiastków zespolonych zawsze wyskakuje mi -1 i nie wiem dlaczego.
#include <stdio.h>
#include <math.h>
#define i sqrt(-1)
int main ()
{
double a,b,c;
double delta1,x1,x2,x0,z1,r1,r2,u1,u2,z2,delta2;
printf ("podaj wspolczynniki a,b,c:");
scanf("%lf" ,&a);
printf ("podaj wspolczynniki a,b,c:");
scanf("%lf" ,&b);
printf ("podaj wspolczynniki a,b,c:");
scanf("%lf" ,&c);
if(a==0){
printf (" a musi być rozne od 0 ziombel");
return(1);
}
delta1=(b*b)-(4*a*c);
if(delta1>0)
{
x1= (-b -sqrt(delta1))/(2*a);
x2= (-b +sqrt(delta1))/(2*a);
printf("x1=%lf, x2=%lf",x1,x2);
}
if(delta1==0)
{
x0= (-b/2*a);
printf("x0=%lf",x0);
}
else if (delta1<0)
{
printf("Cza liczyc w zespolonych");
delta2 = fabs(delta1)*i;
z1=(-b-sqrt(delta2))/(2*a);
z2=(-b +sqrt(delta2))/(2*a);
printf("z1=%lf, z2=%lf",z1,z2);
}
return 0;
}