#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;
}