C语言程序设计(数学库函数)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4.2.2数学库函数

C/C++程序通常用标准库函数和程序员编写的新函数写成。各种C/C++版本都提供函数库,这些函数能够完成常用的数学计算、字符串操作、输入输出以及其它很多操作。这些函数为程序员编写程序提供了很多方便,很多操作都可以调用标准库函数去完成,因此可以减少程序员的工作量。除了库函数以外,程序员也可以自己定义一些函数完成某些特殊的任务。

下面以数学函数为例介绍库函数的使用,后面各章中也将逐步介绍其它库函数的使用。

使用库函数时,要根据函数的类别,用预处理命令#include将函数所在的头文件包含进来。例如,使用数学库中的函数时,应该首先用预处理命令#include指明要用到的数学函数的描述所在的头文件。调用数学函数时,要给出函数名,后面是一对圆括号,括号内是使用函数所需的参数,参数可以是常量、变量或表达式。例如,计算并打印2的3次方的语句可以写成:

printf(“%7.2f”,pow(2.0,3.0));

调用的数学函数pow需要两个参数,这两个参数都是double型的,返回值也是double 型的,语句执行结果为打印8.00。

数学库中所有函数的参数和返回值都是double类型的。常用的数学函数见表4-2。

表4-2常用的数学函数(头文件math.h)

函数原型函数功能函数返回值

int abs(int x)求整数x的绝对值返回x的绝对值

double fabs(double x)求实数x的绝对值返回实数x的绝对值

double exp(double x)求e x返回e的x次方

x,即lnx返回以e为底x的对数值

double log(double x)求log

e

double log10(double x)求log

x返回以10为底x的对数值

10

求x y返回x的y次方

double pow(double x,double

y)

double cos(double x)求x的余弦值返回弧度x的余弦值

double sin(double x)求x的正弦值返回弧度x的正弦值

double tan(double x)求x的正切值返回弧度x的正切值

double fmod(double x)求x/y的余数返回x/y的余数值

double sqrt(double x)计算x的平方根返回x平方根值

【例4-1】输入三角形的三边长,求三角形的面积。

问题分析:

1:输入三角形的三边,可用下述公式计算三角形的面积:

s(s-a)(s-b)(s-c)

其中s=(a+b+c)/2

2:选择一个解决方案的算法

1)定义变量三角形的三边a,b,c,定义s,area为实型

2)键盘输入a,b,c的数值,请注意输入的a,b,c应能构成合法的三角形

3)计算表达式s=(a+b+c)/2

4)计算表达式area=sqrt(s*(s-a)*(s-b)*(s-c))

5)输出结果

参考程序为:

/*程序名:4_1.c*/

/*功能:输入三角形三边,计算面积*/

#include

#include

int main()

{

double a,b,c,s,area;

printf("Please enter3sides of a triangle:\n");

scanf("%f,%f,%f",&a,&b,&c);

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);

printf("area=%7.2f\n",area);

return0;

}

运行结果为:

Please enter3sides of a triangle:

3,4,5

a= 3.00,b= 4.00,c= 5.00

area= 6.00

程序中求平方根的计算要使用数学函数sqrt(),该函数原型为double sqrt(double x),这个原型表示sqrt()接收一个double类型参数,返回double类型结果。sqrt原型在math.h 中,所以要在程序前面加上#include

函数原型的另一个重要特征是强制参数类型转换,即强制转换参数为相应类型。例如,数学库函数sqrt(),虽然math.h中的函数原型指定为double参数,但依然可以使用整数做函数参数进行调用。下列语句:

printf(“%f”,sqrt(4));

能正确求出sqrt(4)并打印结果。函数原型使编译器将整型参数值4变为double型值4.0,然后再进行函数调用。这种转换可能在不遵守C类型转换时造成不正确的结果。

相关文档
最新文档