有关c语言的求一元二次方程的根,用的是codeblocks开发环境

下面是代码

#include"math.h"
#include <stdio.h>
main()
{
float a,b,c,d,x1,x2,p,q;
printf("请输入方程对应的a,b,c的值:");
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
printf("方程没有实数根");
else
p=-b/(2*a);
q=sqrt(d)/(2*a);
x1=p+q;
x2=p-q;
printf("方程的根为:x1=%f,x2=%f",x1,x2);
}
可是无论你输入什么值,结果都如截图。我把分贡献出来,希望高手相助。

修改如下
#include"math.h"
#include <stdio.h>
void main()
{
float a,b,c,d,x1,x2,p,q;
printf("请输入方程对应的a,b,c的值:");
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
//scanf("a=%f,b=%f,c=%f",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
printf("方程没有实数根");
else
p=-b/(2*a);
q=sqrt(d)/(2*a);
x1=p+q;
x2=p-q;
printf("方程的根为:x1=%f,x2=%f",x1,x2);
}
你输入时需要这样输入,比如:
a=1,b=2,c=3追问

我有追加了十分,能告诉我出错原因吗。

追答

认真看我的修改的代码,你的输入有两次,我不知道是不是你打错了,所以我注释掉了一个
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
接着就是你看你的scanf("a=%f,b=%f,c=%f",&a,&b,&c);这个语句,就要求你的输入格式是
a=某个值,b=某个值,c=某个值
然后回车;你的输入方式错了,

追问

恩恩,谢谢,我试了一下,运行成功了。但是没有师叔根时,却如图。显示了没有实根,接着显示x1=,x2=。 已经很感谢了。马上采纳。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-08
修改如下
#include"math.h"
#include
<stdio.h>
void
main()
{
float
a,b,c,d,x1,x2,p,q;
printf("请输入方程对应的a,b,c的值:");
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
//scanf("a=%f,b=%f,c=%f",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
printf("方程没有实数根");
else
p=-b/(2*a);
q=sqrt(d)/(2*a);
x1=p+q;
x2=p-q;
printf("方程的根为:x1=%f,x2=%f",x1,x2);
}
你输入时需要这样输入,比如:
a=1,b=2,c=3
第2个回答  2020-03-26
修改如下
#include"math.h"
#include
<stdio.h>
void
main()
{
float
a,b,c,d,x1,x2,p,q;
printf("请输入方程对应的a,b,c的值:");
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
//scanf("a=%f,b=%f,c=%f",&a,&b,&c);
d=b*b-4*a*c;
if(d<0)
printf("方程没有实数根");
else
p=-b/(2*a);
q=sqrt(d)/(2*a);
x1=p+q;
x2=p-q;
printf("方程的根为:x1=%f,x2=%f",x1,x2);
}
你输入时需要这样输入,比如:
a=1,b=2,c=3

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网