本文目錄一覽:
- 1、怎樣用C語言編寫數學公式
- 2、C語言中組合公式的編程
- 3、c語言編寫數學公式
- 4、C語言數學公式編寫
怎樣用C語言編寫數學公式
1、C語言有現場的常用數學函數,所在函數庫為math.h、stdlib.h。
函數名及解釋:
int abs(int i) 返回整型參數i的絕對值
double cabs(struct complex znum) 返回複數znum的絕對值
double fabs(double x) 返回雙精度參數x的絕對值
long labs(long n) 返回長整型參數n的絕對值
double exp(double x) 返回指數函數ex的值
double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存貯在eptr中
double ldexp(double value,int exp); 返回value*2exp的值
double log(double x) 返回logex的值
double log10(double x) 返回log10x的值
double pow(double x,double y) 返回xy的值
double pow10(int p) 返回10p的值
double sqrt(double x) 返回+√x的值
double acos(double x) 返回x的反餘弦cos-1(x)值,x為弧度
double asin(double x) 返回x的反正弦sin-1(x)值,x為弧度
double atan(double x) 返回x的反正切tan-1(x)值,x為弧度
double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x為弧度
double cos(double x) 返回x的餘弦cos(x)值,x為弧度
double sin(double x) 返回x的正弦sin(x)值,x為弧度
double tan(double x) 返回x的正切tan(x)值,x為弧度
double cosh(double x) 返回x的雙曲餘弦cosh(x)值,x為弧度
double sinh(double x) 返回x的雙曲正弦sinh(x)值,x為弧度
double tanh(double x) 返回x的雙曲正切tanh(x)值,x為弧度
double hypot(double x,double y) 返回直角三角形斜邊的長度(z),x和y為直角邊的長度,z2=x2+y2
2、複雜的數學函數可以用自定義函數的形式實現。
例如:
double ConerVelocity(int A, double x1, double y1, double x2, double y2, double t1, double t2)
{
double T,V;
T=acos(abs(x1 * x2 + y1 * y2)/ sqrt(x1 * x1 +y1 * y1)/sqrt(x2 * x2 +y2 * y2));
V= (A * (t2-t1))/(2*sin(T/2));
return V;
}
C語言中組合公式的編程
int function(int n,int m)
{
int i, ret = 1;
for(i=0;im;i++)
ret *= (n-i);
return ret;
}
void main(void)
{
int n = 15, m =5;
int ret;
ret = function(15,5) / function(5,5);
printf(“%d\n”,ret);
}
c語言編寫數學公式
^在C語言里是邏輯異或運算,如果我沒猜錯的話,你是想用來進行乘方運算吧。在C語言里乘方運算需用pow函數(調用前需加上#include math.h)來實現乘方運算,如用pow(a,b)表示a^b;
另外C語言中的中括號不能當括號用,把中括號[]改為小括號();
以上數學公式用C語言表示如下
double u = 4.1868*( (0.0975+0.0485/pow(1,0.75))*pow(t-273,3)*pow(10.0,-6)+(7.768+3.36/pow(1,0.8))*pow(t-273,2)*0.0001+(489.6+46.4/pow(1,0.93))*(t-273)*0.01 );
不過再此這句前需定義變量t並賦初值
C語言數學公式編寫
錯誤的原因:
a=4/(8*n+1);
4是整型數據,n是整型數據,8*n+1
這個結果還是整型數據,4/(8*n+1)
就變成了整型數據除以整型數據,結果是整型數據,自動捨去了小數部分,然後再把這個整型數據賦值給double型數據,結果就不對了,因為中間捨去了一部分值。
再舉個簡單的例子:
double
a;
a=4/5;//這個語句執行後,a的結果是0.0000000
a=4.0/5;//這個語句執行後,a的結果是0.80000000
把語句改為:
a=4.0/(8*n+1);
這樣就可以了……
這是c語言中的隱式類型轉換問題,可以回看一下這部分的知識……
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/312824.html