怎样用C语言编一个解一元二次方程的程序?

 我来答
KEY徒
2014-03-23
知道答主
回答量:22
采纳率:0%
帮助的人:17.3万
展开全部

这个只能计算已经化简成aX^2+bX+c=0的一元二次方程


int fun(double a,double b,double c,double *x1,double *x2)//由于方程既可能无解也可能有两个解,所以不能直接返回X的值
{
    double p=b*b-4*a*c;//计算Δ
    if (p<0)
    {
        return 0;//方程无解,返回0
    }
    p=√p//求Δ的平方根
    *x1=……//用求根公式计算X1
    *x2=……//用求根公式计算X2
    return 1;//方程有解,返回1
}


就这些了,求根公式和求平方根函数我忘了,你自己查一下。头文件要加一个<math.h>。

鄰冰
推荐于2019-10-24 · TA获得超过8317个赞
知道小有建树答主
回答量:48
采纳率:0%
帮助的人:4.1万
展开全部
  1. #include <stdio.h>

  2. #include <math.h>

  3. int main(void)

  4. {

    double a,b,c,x1,x2,d;

    scanf("%lf%lf%lf",&a,&b,&c);

    d = b * b - 4 * a * c;

    if(d > 0)

  5. {

    x1 = (-1 * b + sqrt(d)) / (2 * a);

    x2 = (-1 * b - sqrt(d)) / (2 * a);

    printf("x1 = %g,x2 = %g\n",x1,x2);

    }

  6. else if(d = 0)

  7. {

    x1 = x2 = (-1 * b) / (2 * a);

    printf("x1 = %g,x2 = %g\n",x1,x2);

    }

  8. else

    {printf("方程没有实根\n");

  9. {return();}

哪有无关内容?最后一句return那个是返回值好吧

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chaoren0q
2018-01-05 · TA获得超过5475个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:35.1万
展开全部

用三个变量,来接一元二次方程的三个参数,
然后根据这三个参数计算△=b*b-4ac,再根据△判断根情况,并根据求根公式计算出相应根,以上都是用c数学计算不难 ,用到开方函数sqrt

(直接开)
形如x=p或(nx+m)=p(p≥0)的一元二次方程可采用直接开平方的方法解一元二次方程.
如果方程化成x²=p的形式,那么可得x=±p;(x²=p,x=±根号p)
如果方程能化成(nx+m)=p(p≥0)的形式,那么nx+m=±p.(同上)
注意:

①等号左边是一个数的平方的形式而等号右边是一个非负数.
②降次的实质是由一个一元二次方程转化为两个一元一次方程.
③方法是根据平方根的意义开平方

(配方法)
(1)将一元二次方程配成(x+m)=n的形式,再利用直接开平方法求解,这种解一元二次方程的方法叫配方法.
(2)用配方法解一元二次方程的步骤:
①把原方程化为ax²+bx+c=0(a≠0)的形式;
②方程两边同除以二次项系数,使二次项系数为1,并把常数项移到方程右边;
③方程两边同时加上一次项系数一半的平方;
④把左边配成一个完全平方式,右边化为一个常数;
⑤如果右边是非负数,就可以进一步通过直接开平方法来求出它的解,如果右边是一个负数,则判定此方程无实数解。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式