用C语言任意输入一元二次方程的三个数,计算根后,根总是为共轭复数。是为什么呢?

/*编写程序:任意输入一元二次方程的系数a,b,c,计算并输出一元二次方程的所有根。*/#include#includevoidmain(){floata,b,c,x1,... /*编写程序:任意输入一元二次方程的系数a, b, c,计算并输出一元二次方程的所有根。*/
#include
#include
void main()
{
float a,b,c,x1,x2,disc;
scanf("f%f%f%",&a,&b,&c);
disc=b*b-4*a*c;
if(fabs(a)<=1e-6)
{
x1=-c/b;
printf("%2.4f",x1);

}
else if(disc>=0)
{
x1=float(-b+sqrt(disc))/(2*a);
x2=float(-b-sqrt(disc))/(2*a);
printf("%2.4f%2.4f",x1,x2);
}
else(disc<0)
{
printf("根为共轭复数");
}
}
是哪里写错了吗?
展开
 我来答
可爱的园丁儿
2018-01-08 · TA获得超过2445个赞
知道小有建树答主
回答量:15
采纳率:90%
帮助的人:1785
展开全部

其实这个问题,我也不知道具体是为什么。但是以下是我对此问题的理解:

  • 先使用读入函数,从键盘读入三个数。

  • 你这三个数,分别是一元二次方程的 ax^2+bx+c=0中的abc,那么你就是用公式先判断△=b^2-4ac的情况,分三种 :

  • 1 △≥0 有两个实数根 x=[-b±(b^2-4ac)^(1/2)]/2a。

  • 2 △<0 无实数根。

  • 在编程的过程中 得给 abc的取值界定类型。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式