【C语言】求ax^2+bx+c=0方程的解。
根据代数知识,应该有以下几种可能:(1)a=0;不是二次方程,而是一次方程。(2)b^2-4ac=0,有两个相等的实根。(3)b^2-4ac>0,有两个不等的实根。(4)...
根据代数知识,应该有以下几种可能:
(1)a=0;不是二次方程,而是一次方程。
(2)b^2-4ac=0,有两个相等的实根。
(3)b^2-4ac>0,有两个不等的实根。
(4)b^2-4ac<0,有两个共轭复根。
请帮帮忙看一下我的答案哪里错了?
我的答案:
#include<stdio.h>
#include<math.h>
void main()
{
double a,b,c,disc,x1,x2,p,q;
printf("请输入a,b,c:");
scanf("%1f,%1f,%1f",&a,&b,&c);
if(a==0)
{
x1=-c/b;
printf("该方程不是二次方程,而是一次方程,其解为:x=%f\n",x1);
}
else
{
disc=b*b-4*a*c;
p=-b/(2*a);
if(disc==0)
{
x1=p;
printf("该方程有两个相等的实根,其解为:x=%f\n",x1);
}
if(disc>0)
{
x1=p+sqrt(disc);
x2=p-sqrt(disc);
printf("该方程有两个不等的实根,其解为:x1=%f,x2=%f",x1,x2);
}
if(disc<0)
{
q=sqrt(-disc)/(2*a);
printf("此二次方程有复数根,分别是:\n");
printf("x1=%f+%fi\n",p,q);
printf("x2=%f-%fi\n",p,q);
}
}
} 展开
(1)a=0;不是二次方程,而是一次方程。
(2)b^2-4ac=0,有两个相等的实根。
(3)b^2-4ac>0,有两个不等的实根。
(4)b^2-4ac<0,有两个共轭复根。
请帮帮忙看一下我的答案哪里错了?
我的答案:
#include<stdio.h>
#include<math.h>
void main()
{
double a,b,c,disc,x1,x2,p,q;
printf("请输入a,b,c:");
scanf("%1f,%1f,%1f",&a,&b,&c);
if(a==0)
{
x1=-c/b;
printf("该方程不是二次方程,而是一次方程,其解为:x=%f\n",x1);
}
else
{
disc=b*b-4*a*c;
p=-b/(2*a);
if(disc==0)
{
x1=p;
printf("该方程有两个相等的实根,其解为:x=%f\n",x1);
}
if(disc>0)
{
x1=p+sqrt(disc);
x2=p-sqrt(disc);
printf("该方程有两个不等的实根,其解为:x1=%f,x2=%f",x1,x2);
}
if(disc<0)
{
q=sqrt(-disc)/(2*a);
printf("此二次方程有复数根,分别是:\n");
printf("x1=%f+%fi\n",p,q);
printf("x2=%f-%fi\n",p,q);
}
}
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询