杉羊角 发表于 2021-3-25 21:48:47

c语言新手求根问题

用的是visual c++ 6.0,文件名是.c的,为什么不对呢?
求ax^2+bx+c=0的根,a,b,c键盘输入,设b^2-4ac>0。
#include<stdio.h>
#include<math.h>
void main()
{
        double a,b,c,disc,x1,x2,p,q;
        scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);
        disc=b*b-4*a*c;
        p=-b/(2*a);
        q=sqrt(disc)/(2*a);
        x1=p+q;
        x2=p-q;
        printf("\nx1=%5.2f\nx2=%5.2f\n",x1,x2);
}
输出值显示;
1.0,8.0,4.0

x1=-1.#J
x2=-1.#J
Press any key to continue

点击卸载 发表于 2021-3-27 17:17:16

1:注意你代码对输入格式是什么要求,你输入的格式不对,建议直接    scanf("%lf %lf %lf",&a,&b,&c);    这样方便,如果区分不清abc的话,可以写注释或者在输入前输出一句话提醒自己,我个人感觉你这个输入格式很容易错
2:输出x1,x2是%lf,不是%f,你是double定义的
3:建议在用函数之前考虑disc是否大于等于0
页: [1]
查看完整版本: c语言新手求根问题