一元二次函数的简单计算

一元二次函数的计算

希望通过简单的程序计算 x2 + 3x +2 = 0函数的两个解。
通过终端读取1, 3, 2参数,根据求根公式计算,具体的程序如下:

#include 
#include 
void main (void)
{
        /* a,b,c is equation character */
        float a=0,b=0,c=0,delta=0,p=0,x1=0,x2=0,q=0;
        printf ("\n**********************************");
        printf ("\n*        solve this equation!         *");
        printf ("\n*             ax2+bx+c=0              *");
        printf ("\n**********************************");
        printf ("\n\n");
        printf ("Plz enter the parameter...\n");
        scanf ("%f%f%f",&a,&b,&c);
        delta = b*b - 4*a*c;
        p = -b/(2*a);
        q = sqrt(delta)/(2*a);
        x1 = p + q;
        x2 = p - q;
        printf("\nThe root is :\nx1=%.2f\nx2=%.2f\n",x1,x2);
}

通过Linux终端进行编译,结果出现的是下面的错误信息:

/tmp/cceFQvWf.o: In function `main':
P08.cal_equation.c:(.text+0x11d): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status

发现是因为不能找到math库,搜索发现 blog信息,在编译的过程中加入 link math的 -lm 命令。

最后使用的编译的命令是:

gcc -o P08.cal_equation  P08.cal_equation.c  -lm 

编译成功!
之后运行上面的程序,得到计算结果:

./P08.cal_equation     # 这是程序运行命令

**********************************
*        solve this equation!         *
*             ax2+bx+c=0              *
**********************************

Plz enter the parameter...
1                      # 输入的三个parameter
3
2

The root is :
x1=-1.00
x2=-2.00

遇到问题还是需要不断的百度和google,不断的学习。

notes
参考链接:https://blog.csdn.net/qq_40390825/article/details/78991257

你可能感兴趣的:(一元二次函数的简单计算)