我写的代码如下:
#include"math.h"
#include"stdio.h"
float x1,x2;
float b1(float a,float b ,float c) //定义b*b-4*a*c>0时的函数
{
float p ,q;
p=-b/(2*a);
q=sqrt(b*b-4*a*c);
x1=p+q; x2=p-q;
}
float b2(float a, float b) //定义b*b-4*a*c=0时的函数
{
float p= -b/(2*a);
return(p);
}
void main()
{
float a,b,c,d;
scanf("%a%b%c",&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{
b1(a,b,c);
printf("解是:%f%f\n",x1,x2);
}
else
{
printf("解是%f\n",b2(a,b));
}
}
编译无错,但无论输入什么结果都是-0.5