一元二次方程C语言编写问题

 #include <stdio.h>  
#include <math.h>   
void main()   
{float a,b,c;   
scanf("%f%f%f",a,b,c);   
if(b*b-4*a*c<0)   
printf("无实根\n");   
if(b*b-4*a*c==0)   
printf("%.4f\n%.4f\n",-b/2*a,-b/-2*a);   
if(b*b-4*a*c>0)   
printf("%.4f\n%.4f\n",(-b+sqrt(b*b-4*a*c))/2*a,(-b-sqrt(b*b-4*a*c))/2*a);   
}  

这是我编写的程序,但是运行出来结果无求大神帮忙看下咋回事

这是我发现的错误在scanf那里没使用地址符

#include

#include

void main()

{float a,b,c;

scanf("%f%f%f",&a,&b,&c);

if(b*b-4*a*c printf("无实根\n");
if(b*b-4*a*c==0)
printf("%.4f\n%.4f\n",-b/2*a,-b/-2*a);
if(b*b-4*a*c>0)

printf("%.4f\n%.4f\n",(-b+sqrt(b*b-4*a*c))/2*a,(-b-sqrt(b*b-4*a*c))/2*a);

}

scanf("%f%f%f",a,b,c); 没有“&”,
上面的老胸说的对

仔细看错误.在判断实数根的的时候(b*b-4*a*c 符啦, #include#include
int main()
{
double p,q,t,x1,x2;
int a,b,c;
printf("输入a,b,c的值\n");
scanf("%d%d%d",&a,&b,&c);
t=b*b-4*a*c;
q=-b/2*a;
p=sqrt(b*b-4*a*c)/(2*a);
if(t>0)
{
x1=q+p;
x2=q-p;
printf("x1=%lf,x2=%lf\n",x1,x2);
}
else if(t==0)
{
x1=x2=q;
printf("x1=%lf,x2=%lf\n",x1,x2);
}
else
{
printf("该方程无解\n");
}
return 0;

}