十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#include stdio.h
我们提供的服务有:网站设计制作、成都网站建设、微信公众号开发、网站优化、网站认证、元江县ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的元江县网站制作公司
int main(void)
{
double a,b,c,d,e;
double x1,x2;
printf("请输入ax^2+bx +c = 0中a,b,c的值");
scanf("%lf,%lf,%lf",a,b,c);
e = b * b - 4 * a * c;
if (e0) {
printf("无解,请重新输入\n");
scanf("%lf,%lf,%lf",a,b,c);
}
printf("输入正确,正在计算....\n");
d = sqrt(e);
x1 = (-b + d)/(2 * a);
x2 = (-b - d)/(2 * a);
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
return 0;
}
pre t="code" l="cpp"#include stdio.h
#include math.h
int main()
{
float a, b, c, jud;
printf ("输入二次方程的三个系数(第一个不能为0):");
scanf ("%f %f %f", a, b, c);
jud = b * b - 4 * a * c; //根的判别式
if (jud 0)
{
printf ("该方程有两个不相等的实根:\n");
printf ("x1 = %.2f\n",(-b + sqrt (jud)) / (2 * a));
printf ("x2 = %.2f\n", (-b - sqrt (jud)) / (2 * a));
}
else if (jud == 0)
{
printf ("该方程有两个相等的实根:\n");
printf ( "x1 = x2 = %.2f\n", -b / (2 * a));
}
else
printf ("This equation haven't real root\n");
return 0;
}
你的输入语句为:
scanf("%f,%f,%f",a,b,c);
运行后输入的数据是否使用了两个逗号分割,否则a,b,c的值并不是你输入的内容,你可以输出来看一看。
建议输入语句不要逗号,例如这样:
scanf("%f%f%f",a,b,c);
这样输入的数据使用逗号或者回车分开都可以。
#include stdio.h
#include math.h
void main()
{ double a,b,c,x1,x2,d,i,t;
printf("请输入 a,b,c:\n");
scanf("%lf,%lf,%lf",a,b,c);
d=b*b-4*a*c;
i=sqrt(-1);
if(a==0)
printf("不是二次函数\n");
else if(d0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%lf,x2=%lf\n",x1,x2);
}
else if(d0)
{
x1=(-b+i*sqrt(d))/(2*a);//这里负数不能开根号
x2=(-b-i*sqrt(d))/(2*a);//这里负数不能开根号
printf("x1=%lf,x2=%lf\n",x1,x2);
}/*当d0时求复数根:可将实部和虚部分开处理,注意:i*sqrt(d)不能这样表达,i只代表虚部,不是-1,另外,开根号的数是-d,而不是d.
*/
else
{
t=-b/(2*a);
printf("x1=x2=%lf\n",t);
}
}
(1): 浮点数存储在内存中是不规则的比如14.6在内存中储存的就是14.599999,也就是近似存储在内存中的,而1e-6就几乎是0,如果你填0是不太容易得到结果的
(2): fabs()是求浮点数绝对值的函数,是被定义在math.h这个头文件里的,还有abs()是求整数绝对值的
(3): a是实参,在用的时候,a被传入fabs()这个函数,然后经过运算,由fabs()返回函数值,也就是a的绝对值,fasb(a)这个表达式的值就是a的绝对值
(4): 是的,直到小于0.000001他才会停止运行
PS: fabs()在VC6中的原型:double fabs( double x );。