求ax·x +bx+c=0 的实根和虚根

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:43:21
讨论a.b.c的就不用了,我自己讨论吧

回答者: buptrobingh 给的答案很好
但有一点,这个方程不一定是二次的吧?

#include<stdio.h>
#include<math.h>

int main(void)
{
double a,b,c,x1,x2,m,n;

scanf("%lf%lf%lf",&a,&b,&c);
if(a==0)
{
//printf("error,please input again!");
if(b!=0)
{
printf("x=%lf\n",-c/b); //唯一解
}
else if(c==0)
{
printf("x can be any number!\n"); //任意值
}
else
{
printf("no sulotion!\n"); //无解
}
}
else if((b*b-4*a*c)>=0)
{//两个实根
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("x1=%lf,x2=%lf\n",x1,x2);
}
else
{//两个虚根
m=(-b)/(2*a);
n=sqrt(4*a*c-b*b)/(2*a);
printf("x1=%lf+%lfi,x2=%lf-%lfi\n",m,n,m,n);
}
getchar();
}

1. b2 -4ac>0 , x1= x2= ;
2. b2 -4ac=0, x1=x2=- ;
3. b2 -4ac