注册 登录
编程论坛 C语言论坛

#新手小白#大佬们 为什么运行的结果会是这样啊???

meirongliang 发布于 2020-05-26 21:20, 2390 次点击
#include <stdio.h>
#include <math.h>
void main()
{
    double a,b,c,disc,x1,x2,p,q;
    scanf("%lf %lf %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);
}
不管输入什么都是以下:
运行结果:

x1=-1.#J
x2=-1.#J

--------------------------------
Process exited after 12.77 seconds with return value 19
请按任意键继续. . .


4 回复
#2
外部三电铃2020-05-26 21:37
你想要什么样的结果?
可以提供一些测试样例吗

[此贴子已经被作者于2020-5-26 21:51编辑过]

#3
吕孟伟2020-05-26 21:49
你的公式x1应该是 x1=p+q;

disc=b*b-4*a*c; disc有可能是负数,开不了平方。
输入1 -5 6
输出:
x1= 3.00
x2= 2.00

[此贴子已经被作者于2020-5-26 22:03编辑过]

#4
meirongliang2020-05-26 22:34
回复 2楼 外部三电铃
我就随便输入的
本人数学很差
#5
meirongliang2020-05-26 22:41
回复 3楼 吕孟伟
谢谢,已经好了
1