求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) 展开
#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) 展开
2个回答
展开全部
如下:
#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、得出方程的解。
展开全部
用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;
}
#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 会出现乱码?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询