一元二次函數(shù)的計算
希望通過簡單的程序計算 x2 + 3x +2 = 0函數(shù)的兩個解。
通過終端讀取1, 3, 2參數(shù),根據(jù)求根公式計算伤为,具體的程序如下:
#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終端進行編譯蜓萄,結果出現(xiàn)的是下面的錯誤信息:
/tmp/cceFQvWf.o: In function `main':
P08.cal_equation.c:(.text+0x11d): undefined reference to `sqrt'
collect2: error: ld returned 1 exit status
發(fā)現(xiàn)是因為不能找到math庫,搜索發(fā)現(xiàn) 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