求ax^2+bx+c=0方程的根。a,b,c由键盘输入,设b^2-4ac>0

#include<stdio.h>#include<math.h>intmain(){doublea,b,c,disc,x1,x2,p,q;scanf("%1f%1f%1... #include<stdio.h>
#include<math.h>
int main()
{
double a,b,c,disc,x1,x2,p,q;
scanf("%1f%1f%1f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);
return 0;

}

我按书上的操作,为什么 会出现这样的乱码? (正确的答案 是x1= -1.00 x2= -2.00)
展开
 我来答
分享社会民生
高粉答主

2019-12-16 · 热爱社会生活,了解人生百态
分享社会民生
采纳数:1248 获赞数:283264

向TA提问 私信TA
展开全部

如下:

#include<stdio.h>

#include<math.h>

disc=b*b-4*a*c;
p=-b/(2.0*a);

q=sqrt(disc)/(2.0*a);
x1=p+q;

x2=p-q;

printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);
return 0。


扩展资料:

1、去分母:方程两边同时乘各分母的最小公倍数

2、去括号:一般先去小括号,再去中括号,最后去大括号。但顺序有时可依据情况而定使计算简便。可根据乘法分配律

3、移项:把方程中含有未知数的项移到方程的另一边,其余各项移到方程的另一边移项时别忘了要变号。(一般都是这样:(比方)从 5x=4x+8 得到 5x - 4x=8 ;把未知数移到一起!

4、合并同类项:将原方程化为ax=b(a≠0)的形式。

5、化系数为一:方程两边同时除以未知数的系数。

6、得出方程的解。

653715717
推荐于2017-10-12 · TA获得超过234个赞
知道小有建树答主
回答量:519
采纳率:0%
帮助的人:113万
展开全部
用float型就可以了,具体原因待查。

#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,disc,x1,x2,p,q;
disc=0;
scanf("%f%f%f",&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);
return 0;
}
追问
我试了下 用 float 确实可以了  ,不过 我还是想不通,double 不是精度问题吗,为啥用double 会出现乱码?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式