怎样用C语言编一个解一元二次方程的程序?
这个只能计算已经化简成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>。
#include <stdio.h>
#include <math.h>
int main(void)
{
double a,b,c,x1,x2,d;
scanf("%lf%lf%lf",&a,&b,&c);
d = b * b - 4 * a * c;
if(d > 0)
{
x1 = (-1 * b + sqrt(d)) / (2 * a);
x2 = (-1 * b - sqrt(d)) / (2 * a);
printf("x1 = %g,x2 = %g\n",x1,x2);
}
else if(d = 0)
{
x1 = x2 = (-1 * b) / (2 * a);
printf("x1 = %g,x2 = %g\n",x1,x2);
}
else
{printf("方程没有实根\n");
{return();}
哪有无关内容?最后一句return那个是返回值好吧
用三个变量,来接一元二次方程的三个参数,
然后根据这三个参数计算△=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,并把常数项移到方程右边;
③方程两边同时加上一次项系数一半的平方;
④把左边配成一个完全平方式,右边化为一个常数;
⑤如果右边是非负数,就可以进一步通过直接开平方法来求出它的解,如果右边是一个负数,则判定此方程无实数解。