题目:求 方程的解
【代码】
#include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,dis,x1,x2;
printf("Please input a b c \n");
scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);//注意这里是lf
if(fabs(a)<=1e-6)//实数在计算和存储时可能会出现一些微小误差,因此不能直接进行是否等于0的判断
printf("The root is %lf\n",-c/b);
else
{
dis=b*b-4*a*c;
if(fabs(dis)<=1e-6)
printf("The roots are %lf\n",-b/(2*a));
else if(dis >=1e-6)
{
x1=-b/(2*a);
x2=sqrt(dis)/(2*a);
printf("The roots are %lf and %lf\n", x1+x2,x1-x2);
}
else
{
x1=-b/(2*a);
x2=sqrt(-dis)/(2*a);
printf("The roots are %lf+%lfi and %lf-%lfi\n", x1,x2,x1,x2);
}
}
return 0;
}