本文目录一览:
- 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语言中的隐式类型转换问题,可以回看一下这部分的知识……