重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
常用数学函数
创新互联公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!为您提供成都网站设计、成都网站建设、外贸网站建设、成都网页设计、小程序开发、成都网站开发、成都网站制作、成都软件开发、APP应用开发是成都本地专业的网站建设和网站设计公司,等你一起来见证!
C语言系统提供了400多个标准函数(称为库函数),设计程序时可以直接使用它们。
库函数主要包括数学函数、字符处理函数、类型转换函数、文件管理函数及内存管理
函数等几类。下面介绍常用的数学函数,其他类型的函数将在后面章节中陆续介绍。
1.函数名:abs
原型:int abs(int i);
功能:求整数的绝对值。
例如,设x=abs(5),y=abs(–5),z=abs(0),则x=5,y=5,z=0。
2.函数名:labs
原型:long labs(long n);
功能:求长整型数的绝对值。
例如,设x=labs(40000L),y=labs(–5),z=labs(0),则x=40000,y=5,z=0。
3.函数名:fabs
原型:double fabs(double x);
功能:求实数的绝对值。
例如,设x=fabs(5.3),y=fabs(–5.3),z=fabs(0),则x=5.3,y=5.3,z=0。
4.函数名:floor
原型:double floor(double x);
功能:求不大于x的最大整数,它相当于数学函数[x]。
例如,设x=floor(–5.1),y=floor(5.9),z=floor(5),则x= –6,y=5,z=5。
5.函数名:ceil
原型:double ceil(double x);
功能:求不小于x的最小整数。
例如,设x=ceil(–5.9),y=ceil(5.1),z=ceil(5),则x = –5,y=6,z=5
6.函数名:sqrt
原型:double sqrt(double x);
功能:求x的平方根。
例如,设x=sqrt(4),y=sqrt(16),则x=1.414214,y=4.0
7.函数名:log10
原型:double log10(double x);
功能:求x的常用对数。
8.函数名:log
原型:double log(double x);
功能:求x的自然对数。
9.函数名:exp
原型:double exp(double x);
功能:求欧拉常数e的x次方。
10.函数名:pow10
原型:double pow10(int p);
功能:求10的p次方。
例如,设x=pow10(3),y=pow10(0),则x=1000,y=1
11.函数名:pow
原型:double pow(double x, double y);
功能:求x的y次方。
例如,设x=pow(3,2),y=pow(–3,2),则x=9,y=9
12.函数名:sin
原型:double sin(double x);
功能:正弦函数。
13.函数名:cos
原型:double cos(double x);
功能:余弦函数。
14.函数名:tan
原型:double tan(double x);
功能:正切函数。
指数表示有两种方法:
1、使用关键字e,如 5e10表示5*10^10,5e-5表示1*10^(-5)=0.00001。
优点是简单明了,和科学记数法类似;缺点是只能表示10为底的指数。
2、使用指数函数pow。使用范围比e广得多,任意浮点数为底数和指数。
原型为double pow( double x, double y );
头文件:math.h
功能:计算x的y次幂。
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。
返回类型:double型,int,float会给与警告!
举例:
#includemath.h
#includestdio.h
int main(){
double x =2.0,y=3.0;
printf("%lfraisedto%lfis%lf\n",x,y,pow(x,y));
return 0;
}
C里面函数原型是double pow(double,double),需要包含math.h.
C++里面推荐这样用(包含ISO C++从C继承的数学函数库,但头文件不带.h扩展名且前面加c,需要用namespace std,函数原型与C中相同):
#include
//添加需要包含的头文件...
using namespace std;
int main()
{
double d,a=2,b=3;
d=pow(a,b);
//d=a^b
//添加代码...
return 0;
}
另外如果使用底数为e,可以用double exp(double),用法与以上类似
#includestdio.h
void maopao(int *a);
void find(int *a);
int main(){
int array[12] = {96,35,12,58,78,90,587,21,0,-65,106,52};
find(array);
maopao(array);
}
void maopao(int *a){
int i,j,n=12,t;
for(i=0;i=n;i++){
for( j=0;jn-i-1;j++)
if(*(a+j)*(a+j+1)){
t=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=t;
}
}
for(i=0;in;i++)
printf("%d ",*(a+i));
}
void find(int *a){
int flag=0,i,n=12;
for(i=0;in;i++){
if(*(a+i)==90){
flag=i;
}
}
if(flag!=0) printf("90在数组中,是array[%d]的值\n",flag);
else printf("90不在数组array中\n");
}
ps.因为题目并没有表述清楚,所以我是先调用寻找90,再排序,如不符合题意调换函数调用先后次序即可。
有不懂的地方可以再问我哦
#include stdio.h
#include math.h
double exp(double x) {
double sum = 0;
double term = 1;
double index = 1;
while (fabs(term) = 1e-6) {
sum = sum + term;
term = term * x / index;
index = index + 1;
}
return sum;
}
int main() {
char c;
double x;
while (scanf(" %c", c) == 1) {
if (c == '#') break;
ungetc(c, stdin);
scanf("%lf", x);
printf("e(%.3lf) = %.5lf\n", x, exp(x));
}
}
c里面函数原型是double
pow(double,double),需要包含math.h。
c++里面推荐这样用(包含iso
c++从c继承的数学函数库,但头文件不带.h扩展名且前面加c,需要用namespace
std,函数原型与c中相同):
#includecmath
//添加需要包含的头文件...
using
namespace
std;
int
main()
{
double
d,a=2,b=3;
d=pow(a,b);
//d=a^b
//添加代码...
return
0;
}
另外如果使用底数为e,可以用double
exp(double),用法与以上类似。