#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,q;
void lianggegen(float a,float b,float q);
void dangen(float a,float b,float q);
void fushugen(float a,float b,float q);
printf("输入 a b c 的值,以空格分隔:\n ");
scanf("%f%f%f",&a,&b,&c);
printf("\n");
if(a==0)
if(b==0)
if(c==0)
printf("方程的根是所有实数");
else
{printf("该方程无根\n");return 0;}
else
{printf("x=%.3f\n",-c/b);return 0;}
q=b*b-4*a*c;
if(q>0)
lianggegen(a,b,q); //
else if(q==0)
dangen(a,b,q);
else
fushugen(a,b,q) ;
return 0;
}
void lianggegen(float a,float b,float q)
{
float x1,x2;
x1=(-b+(float)sqrt(q))/(2*a);
x2=(-b-(float)sqrt(q))/(2*a);
printf("该方程有两个根,分别是: x1=%.3f and x2=%.3f\n",x1,x2);
}
void dangen(float a,float b,float q)
{
float x;
x=(float)(-b/(2*a));
printf("该方程只有一个根, x=%.3f\n",x);
}
void fushugen(float a,float b,float q)
{
float x,y;
x=(float)(-b/(2*a));
y=(float)sqrt(-q)/(2*a);
printf("两个复数根分别是 x1=%.3f+%.3fi and x2=%.3f-%.3fi\n",x,y,x,y);
}