用函数调用求一元二次方程的根,哪位高手帮忙看看,为什么程序能运行却总是得不到正确的答案啊
#include<stdio.h>#include<math.h>
float x1,x2,a,b,c,p,q,disc;
void main()
{
float ans_1(float a,float b);
float ans_2(float a,float b);
float ans_3(float a,float b);
printf("请分别输入三个系数a,b,c\n");
scanf("%d,%d,%d",&a,&b,&c);
disc=b*b-4*a*c;
if(a==0)
printf("x=%.2f",-c/b);
else if(a==0&&b==0)
printf("该方程无解\n");
else if(disc>0)
{
ans_1(a,b);
printf("x1=%.2f,x.22=%f\n",x1,x2);
}
else if(disc==0)
{
ans_2(a,b);
printf("x1=x2=%.2f",x1);
}
else if(disc<0)
ans_3(a,b);
printf("x1=%.2f+%.2fi\tx2=%.2f-%.2fi\n",p,q,p,q);
}
float ans_1(float a,float b)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
return ans_1(a,b);
}
float ans_2(float a,float b)
{
x1=x2=-b/(2*a);
return ans_2(a,b);
}
float ans_3(float a,float b)
{
p=-b/(2*a);
q=sqrt(-disc)/(2*a);
return ans_3(a,b);
}