帮我看下,c语言问题.求方程ax^2+bx+c=0的根,用2个函数分别求当b^2-4ac大于0、等于0时的根并输出结果.我写的代码如下:#include"math.h"#include"stdio.h"float x1,x2;float b1(float a,float b ,float c) //定义b*b-4*a*c>

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 04:01:29

帮我看下,c语言问题.求方程ax^2+bx+c=0的根,用2个函数分别求当b^2-4ac大于0、等于0时的根并输出结果.我写的代码如下:#include"math.h"#include"stdio.h"float x1,x2;float b1(float a,float b ,float c) //定义b*b-4*a*c>
帮我看下,c语言问题.求方程ax^2+bx+c=0的根,用2个函数分别求当b^2-4ac大于0、等于0时的根并输出结果.
我写的代码如下:
#include"math.h"
#include"stdio.h"
float x1,x2;
float b1(float a,float b ,float c) //定义b*b-4*a*c>0时的函数
{
float p ,q;
p=-b/(2*a);
q=sqrt(b*b-4*a*c);
x1=p+q; x2=p-q;
}
float b2(float a,float b) //定义b*b-4*a*c=0时的函数
{
float p= -b/(2*a);
return(p);
}
void main()
{
float a,b,c,d;
scanf("%a%b%c",&a,&b,&c);
d=b*b-4*a*c;
if(d>0)
{
b1(a,b,c);
printf("解是:%f%f\n",x1,x2);
}
else
{
printf("解是%f\n",b2(a,b));
}
}
编译无错,但无论输入什么结果都是-0.5

帮我看下,c语言问题.求方程ax^2+bx+c=0的根,用2个函数分别求当b^2-4ac大于0、等于0时的根并输出结果.我写的代码如下:#include"math.h"#include"stdio.h"float x1,x2;float b1(float a,float b ,float c) //定义b*b-4*a*c>
scanf语句错了!
scanf("%a%b%c",&a,&b,&c);
应该改为scanf("%f %f %f", &a, &b, &c);
你接收到的数据根本就是错的,往下进行更无从谈起了!
建议你看看这里: