E có viết một pt bậc hai như vầy ạ, khi thử giá trị a=-2,b=-2,c=0 thì ra nghiệm x2 =-0, cho e hỏi vì sao nó ra như vậy ạ
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main ()
{printf ("dien gia tri a, b, c:\n");
float a, b, c;
float denta, dentano2;
scanf ("%f %f %f", &a, &b, &c);
denta = b*b - 4*a*c;
dentano2 = sqrt(denta);
{
float x1, x2;
if (a != 0)
{
if (denta > 0)
{x1 = (-b + dentano2)/ (2*a);
x2 = (-b - dentano2)/ (2*a);
{if (x2==-0)
printf ("nghiem x1 = %.3f\n nghiem x2 = 0", x1);
else
printf ("nghiem x1 = %.3f\n nghiem x2 = %.3f", x1, x2);
}}
else if (denta == 0)
{x1 = x2 = -b/(2*a);
printf ("nghiem x1 = x2 = %.3f", x1);}
else
{printf ("phuong trinh nay vo nghiem");}
}
else
{
if (b != 0)
{x1 = -c/b;
printf ("pt khuyet a co nghiem x la %.3f", x1);}
else
{
if (c == 0)
printf ("phuong trinh co vo so nghiem");
else
printf ("phuong trinh vo nghiem");
}
}
}
return 0;
}