c语言解方程
一元二次方程 ax^2+bx+c=0 假设b^2-4ac>=0 这里不需要再判断了,#include<stdio.h>
#include<math.h>
main()
{
double a,b,c,x1,x2,d,p,q;
scanf("%f%f%f",&a,&b,&c);
d=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(d)/(2*a);
x1=p+q;
x2=p-q;
printf("x1=%.2f,x2=%.2f\n",x1,x2);
}
问题1:输入1 2 1 之后显示
1 2 1
x1=-1.#J,x2=-1.#J
为什么?怎么解决?
问题2:使用float类型时编译提示错误:conversion from 'double ' to 'float ', possible loss of data 为什么,怎样才能用float正常解决?