//e^x
#include<stdio.h>
int main(void)
{
float fac,i,ex,xn,x;
printf("please input x:");
scanf("%f",&x);
for(fac=1,xn=1,ex=1,i=1;xn/fac>1e-6;i++)//初值,循环条件
{
fac=fac*i;//实现分母(n!)
xn=xn*x;//实现分子(x^n)
ex=ex+xn/fac;//n次累加
}
printf("e^x=%f",ex);
}
//sin(x)
#include<stdio.h>
int main(void)
{
float sinx,x,xn,fac,i;
printf("please input x:");
scanf("%f",&x);
for(i=3,xn=x,fac=1,sinx=x;xn/fac>1e-6||xn/fac<-1e-6;i=i+2)
{
xn=xn*x*x;//实现分子(每次递增x的次幂加2)
fac=(-1)*i*(i-1)*fac;//实现分母((2n+1)!)以及(-1)^n
sinx=sinx+xn/fac;//累加
}
printf("sin x=%f",sinx);
}
//cos(x)
#include<stdio.h>
int main(void)
{
float cosx,i,xn,x,fac;
printf("please input x:");
scanf("%f",&x);
for(xn=1,fac=1,cosx=1,i=2;xn/fac>1e-6||xn/fac<-1e-6;i+=2)
{
xn=xn*x*x;//实现分子(每次递增x的次幂加2)
fac=(-1)*i*(i-1)*fac;//实现分母((2n)!)以及(-1)^n
cosx=cosx+xn/fac;//累加
}
printf("cos x=%f",cosx);
}