回 帖 发 新 帖 刷新版面

主题:[讨论]C语言求助,解一元二次方程的代码,如下,

[code=c]
#include <stdio.h>
#include <math.h>

void main()
{
double a,b,c,d,x1,x2,p,q;
scanf("a=%lf,b=%lf,c=%lf",&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=%5.2f\nx2=%5.2f\n",x1,x2);

}[/code]

无论我打什么数字下去,编译出来的都是 X1=-1 #J  ,X2=-1#J

我不知道是在那里出错了

回复列表 (共7个回复)

沙发


sqrt是需要一个非负数作为参数滴~你的d肯能为负数哦~

板凳

你要先判断d是否为负数,如果是则无解

3 楼

你要先判断d是否为负数,如果是则无解

4 楼

p=-b/(2*a);
q=sqrt(d)/(2*a);  printf("x1=%5.2f\nx2=%5.2f\n",x1,x2);


这里错了!!而且没有必要定义8个变量!!多余了~~7个就行

5 楼

scanf("a=%lf,b=%lf,c=%lf",&a,&b,&c);
去掉a=,b=,c=能进行一部分计算
scanf("%lf,%lf,%lf",&a,&b,&c);

6 楼


解释的通吗,这个我想知道。












SIGNATURE:--------------------------------------
A liar is not believed when he speaks the truth.
[url=http://www.freshoneshoe.com/nike-free-run-2-c-55.html]nike free run 2[/url],[url=http://www.freshoneshoe.com/nike-lunarglide-3-c-50.html]nike lunarglide 3[/url],[url=http://www.freshoneshoe.com/nike-free-run-shoes-c-27.html]nike free run[/url]

7 楼

额。这个帖子回复不少。跪求解答www.jinxiaoblog.com

我来回复

您尚未登录,请登录后再回复。点此登录或注册