怎样用C语言编写数学公式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用C语言编写数学公式相关的知识,希望对你有一定的参考价值。

现在编写的算法需要用到很复杂的数学运算公式(含有大量的sin cos函数),请给我推荐合适的参考书,可供参考的源代码也可以。 谢谢了。

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;

参考技术A #include <math.h>
数学函数,所在函数库为math.h、stdlib.h、string.h、float.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本回答被提问者采纳
参考技术B ^在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 用别人写好的函数就行了呗,那些都是大牛中的大牛写出来的,我们自己写的肯定没有别人的好,有现成的就用现成的呗,等你有能力自己写的时候再自己写!

推荐一本编程用的数学书,绝对经典,《什么是数学》
好好研究这本书,你会发现数学很奇妙,很悬!
参考技术D 套用头文件Math.h里面包含了数学里面的计算,例如开平方什么的,例如求二次函数ax2+bx+c=0,那么有公式法去求解,scanf(abc的值)然后低下调用value=公式,最后使用printf将结果输出

怎样用C语言编写个爱心图象

求救!

创建一个心形图案需要的最长字符串,充分利用printf函数输出字符串的丰富控制功能,按心形图案每行所需长度和位置,对所创建的字符串进行截断并在所需位置上输出,最后在屏幕上形成由字符组成的心形图案。
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void)
    char a[]="I love you I love you I love you I l";
    printf("\\n\\n\\n");
    printf("%*.*s\\n",58,21,"_*=_           _=*_");
    printf("%*.*s\\n",61,25,"I love yo       u I love!");
    printf("%*.*s\\n",63,29,"I love you I l ove you I love");
    printf("%*.*s\\n",65,33,a);//在屏幕第65个字符处开始输出字符串a的前33个字符,其他各句意义相同
    printf("%*.*s\\n",66,35,a);
    printf("%*.*s\\n",66,35,a);
    printf("%*.*s\\n",65,33,a);
    printf("%*.*s\\n",64,31,a);
    printf("%*.*s\\n",63,29,a);
    printf("%*.*s\\n",61,25,a);
    printf("%*.*s\\n",59,21,a);
    printf("%*.*s\\n",57,17,a);
    printf("%*.*s\\n",55,13,a);
    printf("%*.*s\\n",53,9,a);
    printf("%*.*s\\n",51,5,a);
    printf("%*.*s\\n",50,3,a);
    printf("%*.*s\\n",49,1,a);
    return 0;

参考技术A 倒心:
#include<stdio.h>
#include<math.h>
void main()

int a,b,c;
for(a=1;a<=6;a++)
for(b=1;b<=6-a;b++)
printf(" ");
for(c=1;c<=2*a-1;c++)
if(a<5&&(c==1||c==2*a-1)||(a==5&&(c==2||c==5||c==8))||a==6&&(c==4||c==5||c==7||c==8))
printf("\3");
else printf(" ");

printf("\n");




双心:
#include<stdio.h>
#include<math.h>
void main()

int a,b,c;
for(a=1;a<=6;a++)

for(b=1;b<=6-a;b++)
printf(" ");
for(c=1;c<=2*a-1;c++)

if(a<5&&(c==1||c==2*a-1)||(a==5&&(c==2||c==5||c==8))||a==6&&(c==4||c==5||c==7||c==8))
printf("\3");
else printf(" ");

printf("\n");



for(a=1;a<=6;a++)

for(b=1;b<=a;b++)
printf(" ");
for(c=1;c<=11-2*a;c++)

if(a>1&&(c==1||c==11-2*a)||a==1&&(c==2||c==5||c==8))
printf("\3");
else printf(" ");


printf("\n");



正心:
#include<stdio.h>
#include<math.h>
void main()

int a,b,c;

printf(" \3\3 \3\3\n");
for(a=1;a<=6;a++)

for(b=1;b<=a;b++)
printf(" ");
for(c=1;c<=11-2*a;c++)

if(a>1&&(c==1||c==11-2*a)||a==1&&(c==2||c==5||c==8))
printf("\3");
else printf(" ");


printf("\n");

参考技术B 最简单的就是用Printf语句输出一个。本回答被提问者采纳 参考技术C 双层循环就可以了
不过最简单的楼上的兄弟已经说了

以上是关于怎样用C语言编写数学公式的主要内容,如果未能解决你的问题,请参考以下文章

C语言中常用的数学公式

怎样把caj中的数学公式复制下来

用C语言基础及数学公式来简单实现土味表白

想用单片机测量温度,热电阻温度计算公式为:T1=1/[ln(Rt / R)/B+1/T2],怎样用C语言表示此公式?

C语言编程,已知三角形的三边长a,b,c,计算求三角形面积的公式为:

怎样用LaTeX优雅地打印数学的一切