C语言程序设计(数学库函数)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.2.2数学库函数
C/C++程序通常用标准库函数和程序员编写的新函数写成。各种C/C++版本都提供函数库,这些函数能够完成常用的数学计算、字符串操作、输入输出以及其它很多操作。这些函数为程序员编写程序提供了很多方便,很多操作都可以调用标准库函数去完成,因此可以减少程序员的工作量。除了库函数以外,程序员也可以自己定义一些函数完成某些特殊的任务。
下面以数学函数为例介绍库函数的使用,后面各章中也将逐步介绍其它库函数的使用。
使用库函数时,要根据函数的类别,用预处理命令#include将函数所在的头文件包含进来。例如,使用数学库中的函数时,应该首先用预处理命令#include
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类型转换时造成不正确的结果。