取复数的方程不会解额.
我这里只有一个讨论a,b,c取零、实数的代码,希望可以帮到你.
#include
#include
int main(void)
{
float a,b,c,d;
doublex1,x2;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
if(a==0&&b==0)
{
if(c==0)
printf("No significance!");
else
printf("No Answer!");
}
else if(a==0&&b!=0)
{
printf("x1=x2=%lfn",(-c/b));
}
else if(a!=0&&d>=0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%lfnx2=%lfn",x1,x2);
}
else if(a!=0&&d