#include
#include
main()
{
float a,b,c,d,r,x,x1,x2;
scanf("%f %f %f",&a,&b,&c);
r=b*b-4*a*c;
d=2*a;
if(a==0||b==0) printf("Input error!\n");
if(r>0) printf("x1=%f\nx2=%f\n",(-b+sqrt(r))/d,(-b-sqrt(r))/d);
if(r==0) printf("x1=x2=%f\n",-b/d);
if(r<0)
{
if(b==0) printf("x1=%f i\nx2=%f i\n",sqrt(-r)/d,-sqrt(-r)/d);
else printf("x1=%f+%fi\nx2=%f-%fi\n",-b/d,sqrt(-r)/d,-b/d,sqrt(-r)/d);
}
}
float是对的
#include
#include
main()
{
double a,b,c,d,r,x,x1,x2;
scanf("%f %f %f",&a,&b,&c);
r=b*b-4*a*c;
d=2*a;
if(a==0||b==0) printf("Input error!\n");
if(r>0) printf("x1=%f\nx2=%f\n",(-b+sqrt(r))/d,(-b-sqrt(r))/d);
if(r==0) printf("x1=x2=%f\n",-b/d);
if(r<0)
{
if(b==0) printf("x1=%f i\nx2=%f i\n",sqrt(-r)/d,-sqrt(-r)/d);
else printf("x1=%f+%fi\nx2=%f-%fi\n",-b/d,sqrt(-r)/d,-b/d,sqrt(-r)/d);
}
}
改成double就错了 请问为什么
第二行改成scanf("%lf %lf %lf",&a,&b,&c)