用C语言编写这道题...一直做不出来

来源:百度知道 编辑:UC知道 时间:2024/05/15 23:52:20
如题,求a*x*x+b*x+c=0的解
就是求一元二次方程
最好能写出来让我参考下...
我是用-b±sqr((b*b-4*a*c)/2*a)这个解的...但老是返回错误

我是这样写的:
#include "stdio.h"
main()
{
float a,b,c,x1,x2,x;
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
x1=(-b+sqr(b*b-4*a*c))/2*a;
x2=(-b-sqr(b*b-4*a*c))/2*a;
prinft("%f",x1);
prinft("%f",x2);
if(b*b-4*a*c==0);
x=(-b+sqr(b*b-4*a*c))/2*a;
print("%f",x);
if(b*b-4*a*c<0)
printf ("无解");

}

返回那些英文错误好像说什么未定义...

sqr改为sqrt

*****************************************

这个程序有很多问题,

以下是更正后的程序:

#include <stdio.h>
#include <math.h> //用到了平方根函数sqrt,所以要包含这个头文件

main()
{
float a,b,c,x1,x2,x;
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)//这里要执行多条语句,所以要加上大括号
{
x1=(-b+sqrt(b*b-4*a*c))/2*a; //注意!开平方是sqrt,不是sqr
x2=(-b-sqrt(b*b-4*a*c))/2*a;
printf("%f\n",x1);//注意printf的写法,不要写成print或者是prinft
printf("%f",x2);
}
if(b*b-4*a*c==0) //这里不应该有分号
{
x=(-b+sqrt(b*b-4*a*c))/2*a;
printf("%f",x);
}
if(b*b-4*a*c<0)
printf ("无解");

}

是用那个x1+x2等于什么还有x1*x2等于什么吧

先要判断根式下的值大于0

//VC6.0编译通过
#include "stdio.h"
#include "math.h"
main()
{
float a,b,c,x1,x2,x;
scanf("%f%f%f",&a,&b,&c);
if(b*b-4*a*c>0)
{
x1=(-b+sqrt(b*b-4