求方程 ax²+bx十c=0的根,用3 个函数分别求当:b²-4ac 大于0、等于0和小于0 时的根并输出结果。从主函数输人a,b,c的值。
主函数输入a,b,c的值吧?怎么是6。小于0是输出虚数,还是返回错误?
#include <stdio.h>
#include <math.h>
void fun2(float dis,float a,float b)
{
float x1=(-b+sqrt(dis))/(2*a);
float x2=(-b-sqrt(dis))/(2*a);
printf("该函数有两个不等的实根:x1=%f x2=%f\n",x1,x2);
}
void fun1(float a,float b)
{
float x = (-b)/(a*a);
printf("该函数有两个相等的实根:x=%f\n",x);
}
void fun0(float dis,float a,float b)
{
float r =-b/(2*a);
float i =sqrt(-dis)/(2*a);
printf("该函数有两个不等的虚根:x1=%8.4f+%8.4fi x2=%8.4f-%8.4fi\n",r,i,r,i);
}
int main()
{
float a,b,c,dis,x1,x2;
printf("请输入a,b,c的值: ");
scanf("%f %f %f",&a,&b,&c);
dis=b*b-4*a*c;
if(dis<0)
{
fun0(dis,a,b);
}
else if(dis==0)
{
fun1(a,b);
}
else
{
fun2(dis,a,b);
}
return 0;
}