一元二次函数的计算
希望通过简单的程序计算 x2 + 3x +2 = 0函数的两个解。
通过终端读取1, 3, 2参数,根据求根公式计算,具体的程序如下:
#include <stdio.h>
#include <math.h>
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