代码如下:
/*求ax^2+bx+c=0方程的解*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
main()
{
float a,b,c,disc,x1,x2,realpart,imagpart;
printf("请依次输入二元一次方程的系数(a=,b=,c=):");
scanf("a=f%,b=%f,c=%f",&a,&b,&c);
if(fabs(a)<=1e-6)
{
printf("抱歉,该方程不是二元一次方程!\n");
exit(1);
}
else disc=b*b-4*a*c;
if(fabs(disc)<=1e-6)
printf("该方程有两个相等的实根:x1=x2=%8.4f\n",-b/(2*a));
else if(disc>1e-6)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("该方程有两个不相等的实数根:\n x1=%8.4f,x2=%8.4f\n",x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf("该方程有两个复根:\n");
printf("x1=%8.4f+%8.4fi\n",realpart,imagpart);
printf("x2=%8.4f-%8.4fi\n",realpart,imagpart);
}
return 0;
}
运行结果如下:还没有修正
分析:不管输入什么,都是同样的结果。