C程序编程:用3个函数分别求根怎么得不出答案啊!

来源:百度知道 编辑:UC知道 时间:2024/06/14 08:14:10
求一元二次方程的根,用3个函数分别求当b^2-4*a*c大于0、小于0、等于0时的根并输出结果。从主函数输入a、b、c的值。
我的代码如下,可是运行为什么都是0啊!
#include<stdio.h>
#include<math.h>
float x1,x2,disc,p,q;

dayuling(a,b)
float a,b;
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
}

dengyuling(a,b)
float a,b;
{
x1=x2=(-b)/(2*a);
}

xiaoyuling(a,b)
float a,b;
{
p=(-b)/(2*a);
q=sqrt(disc)/(2*a);
}

main()
{
float a,b,c,disc,x1,x2;

printf("please input a,b,c:\n");
scanf("%f,%f,%f",&a,&b,&c);
printf("\ny=%5.2f*x*x+%5.2f*x+%5.2f",a,b,c);

if(disc>0)
{
dayuling(a,b);
printf("\nx1=%5.2f,x2=%5.2f",x1,x2);
}
else if(disc==0)
{
dengyuling(a,b);
printf("\nx1=%5.2f,x2=%5.2f",x1,x2);
}
else
{
xiaoyuling(a,b);
printf("\nx1=%5.2f

#include<stdio.h>
#include<math.h>
main()
{
float x1,x2,disc,p,q,a,b,c;
printf("please input a,b,c:\n");
scanf("%f,%f,%f",&a,&b,&c);
printf("\ny=%5.2f*x*x+%5.2f*x+%5.2f",a,b,c);
disc=b*b-4*a*c;
if(disc>0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("\nx1=%5.2f,x2=%5.2f",x1,x2);
}
else if(disc==0)
{
x1=x2=(-b)/(2*a);
printf("%F",disc);
printf("\nx1=%5.2f,x2=%5.2f",x1,x2);
}
else
{
p=(-b)/(2*a);
q=sqrt(disc)/(2*a);
printf("\nx1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi",p,q,p,q);
}
}

你的这种写函数的我还是第一次见,
不过在这句中scanf("%f,%f,%f",&a,&b,&c);输入时应注意用逗号隔开,而不是
空格,其它的计算自解决啦