您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > VC++中的数学函数及其用法详解
C++与其它语言的一大区别是提供了庞大的函数库,能用好它就可以提高你的效率。先看看cstdlib里面的:intrand():返回一个随机的整数。voidsrand(int):根据参数重新初始化随机数产生器。int/floatabs(int/float):返回数的绝对值。min/max(a,b):返回a和b中的较小/大者,用#define定义的,大家不用担心效率。intatoi(char*s);,返回由s字符串转换成的整数。doubleatof(char*s);,返回由s字符串转换成的浮点数。char*gcvt(doublenum,intsig,char*str);,num为待转换浮点数,sig为转换后数的有效数字数,str为目标字符串起点。函数返回指向str的指针。举个例子,如果sig=5那么9.876会转换成9.876,-123.4578会变成-123.46,6.7898e5就成了6.7898e+05。然后是cmath里面的数学函数:sin、cos、tan:这个你应该懂吧J。asin、acos、atan:反三角函数。sinh、cosh、tanh:双曲三角函数。log、log10:自然和常用对数。exp、pow10:上面两个函数的反函数。pow(x,y):返回x的y次幂。sqrt:开平方根。ceil:返回最小的不小于x的整数。floor:返回最大的不大于x的整数。hypot(x,y):返回x的平方加上y的平方再开方的值。接着要说的是常用的字符串函数,在cstring内有它们的定义。char*strcpy(char*dest,char*src);,该函数使dest=src并返回新的dest。使用它还可以实现字符串和字符数组之间的转换。char*strcat(char*dest,char*src);,将src连接到dest的后面,并返回新的dest。char*strstr(char*s1,char*s2);,返回指向s2在s1中第一次出现的位置的指针。char*strchr(char*s1,charc);,返回指向c在s1中第一次出现的位置的指针。char*strlwr(char*s);,将s中的所有大写字母转为小写。char*strset(char*s,charc);,将s内所有字符替换为字符c。intstrlen(char*s);,返回字符串的长度。最后是memory中的内存函数:memcpy(char*dest,char*src,intn);,将从src开始的n个字节的内存内容拷贝到从dest开始的内存中。注意dest和src在内存中的位置不能重叠。memmove(char*dest,char*src,intn);,也可以实现拷贝,dest和src在内存中的位置可以重叠。当然,它比memcpy慢。memset(s,c,n);,将从s开始的n个字节都设为c。可以用来将数组和结构清零。数学函数,所在函数库为math.h、stdlib.h、string.h、float.hintabs(inti)返回整型参数i的绝对值doublecabs(structcomplexznum)返回复数znum的绝对值doublefabs(doublex)返回双精度参数x的绝对值longlabs(longn)返回长整型参数n的绝对值doubleexp(doublex)返回指数函数ex的值doublefrexp(doublevalue,int*eptr)返回value=x*2n中x的值,n存贮在eptr中doubleldexp(doublevalue,intexp);返回value*2exp的值doublelog(doublex)返回logex的值doublelog10(doublex)返回log10x的值doublepow(doublex,doubley)返回xy的值doublepow10(intp)返回10p的值doublesqrt(doublex)返回+√x的值doubleacos(doublex)返回x的反余弦cos-1(x)值,x为弧度doubleasin(doublex)返回x的反正弦sin-1(x)值,x为弧度doubleatan(doublex)返回x的反正切tan-1(x)值,x为弧度doubleatan2(doubley,doublex)返回y/x的反正切tan-1(x)值,y的x为弧度doublecos(doublex)返回x的余弦cos(x)值,x为弧度doublesin(doublex)返回x的正弦sin(x)值,x为弧度doubletan(doublex)返回x的正切tan(x)值,x为弧度doublecosh(doublex)返回x的双曲余弦cosh(x)值,x为弧度doublesinh(doublex)返回x的双曲正弦sinh(x)值,x为弧度doubletanh(doublex)返回x的双曲正切tanh(x)值,x为弧度doublehypot(doublex,doubley)返回直角三角形斜边的长度(z),x和y为直角边的长度,z2=x2+y2doubleceil(doublex)返回不小于x的最小整数doublefloor(doublex)返回不大于x的最大整数voidsrand(unsignedseed)初始化随机数发生器intrand()产生一个随机数并返回这个数doublepoly(doublex,intn,doublec[])从参数产生一个多项式doublemodf(doublevalue,double*iptr)将双精度数value分解成尾数和阶doublefmod(doublex,doubley)返回x/y的余数doublefrexp(doublevalue,int*eptr)将双精度数value分成尾数和阶doubleatof(char*nptr)将字符串nptr转换成浮点数并返回这个浮点数doubleatoi(char*nptr)将字符串nptr转换成整数并返回这个整数doubleatol(char*nptr)将字符串nptr转换成长整数并返回这个整数char*ecvt(doublevalue,intndigit,int*decpt,int*sign)将浮点数value转换成字符串并返回该字符串char*fcvt(doublevalue,intndigit,int*decpt,int*sign)将浮点数value转换成字符串并返回该字符串char*gcvt(doublevalue,intndigit,char*buf)将数value转换成字符串并存于buf中,并返回buf的指针char*ultoa(unsignedlongvalue,char*string,intradix)将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char*ltoa(longvalue,char*string,intradix)将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数char*itoa(intvalue,char*string,intradix)将整数value转换成字符串存入string,radix为转换时所用基数doubleatof(char*nptr)将字符串nptr转换成双精度数,并返回这个数,错误返回0intatoi(char*nptr)将字符串nptr转换成整型数,并返回这个数,错误返回0longatol(char*nptr)将字符串nptr转换成长整型数,并返回这个数,错误返回0doublestrtod(char*str,char**endptr)将字符串str转换成双精度数,并返回这个数,longstrtol(char*str,char**endptr,intbase)将字符串str转换成长整型数,并返回这个数,intmatherr(structexception*e)用户修改数学错误返回信息函数(没有必要使用)double_matherr(_mexcepwhy,char*fun,double*arg1p,double*arg2p,doubleretval)用户修改数学错误返回信息函数(没有必要使用)unsignedint_clear87()清除浮点状态字并返回原来的浮点状态void_fpreset()重新初使化浮点数学程序包unsignedint_status87()返回浮点状态字***************************************************原型:externintabs(intx);用法:#includemath.h功能:求整数x的绝对值说明:计算|x|,当x不为负时返回x,否则返回-x***************************************************原型:externfloatacos(floatx);用法:#includemath.h功能:求x(弧度表示)的反余弦值说明:x的定义域为[-1.0,1.0],值域为[0,π]。***************************************************原型:externfloatasin(floatx);用法:#includemath.h功能:求x(弧度表示)的反正弦值说明:x的定义域为[-1.0,1.0],值域为[-π/2,+π/2]。***************************************************原型:externfloatatan(floatx);用法:#includemath.h功能:求x(弧度表示)的反正切值说明:值域为(-π/2,+π/2)。***************************************************原型:externfloatatan2(floaty,floatx);用法:#includemath.h功能:求y/x(弧度表示)的反正切值说明:值域为(-π/2,+π/2)。***************************************************原型:externfloatceil(floatx);用法:#includemath.h功能:求不小于x的最小整数说明:返回x的上限,如74.12的上限为75,-74.12的上限为-74。返回值为float类型。***************************************************原型:externfloatcos(floatx);用法:#includemath.h功能:求x(弧度表示)的余弦值说明:返回值在[-1.0,1.0]之间。***************************************************原型:externfloatcosh(floatx);用法:#includemath.h功能:求x的双曲余弦值说明:cosh(x)=(e^x+e^(-x))/2***************************************************原型:externfloatexp(floatx);用法:#includemath.h功能:求e的x次幂说明:e=2.718281828...***************************************************原型:externfloatfabs(floatx);用法:#includemath.h功能:求浮点数x的绝对值说明:计算|x|,当x不为负时返回x,否则返回-x***************************************************原型:externfloatfloor(floatx);用法:#includemath.h功能:求不大于x的最达整数说明:返回x的下限,如74.
本文标题:VC++中的数学函数及其用法详解
链接地址:https://www.777doc.com/doc-2035079 .html