用c语言编写cosx函数

Python017

用c语言编写cosx函数,第1张

cosx函数#include<stdio.h>#include<math.h>int main(){int n=0double x,sum=0printf("please enter x:")scanf("%lf",&x)//double cosx(double x,int n)do{sum=sum+cosx(x,n)n=n+1}while(fabs(cosx(x,n))>1e-8)printf("%9.8f\n",sum)return 0}double cosx(double x,int n){double p,q//p=pow(x,2*n)double fact(int n)//q=fact(2*n)if(n%2)return(-p/q)elsereturn(p/q)}double fact(int n)//{double ans=1int iif(n<=1)return 1for(i=1i<=n++i)ans*=ireturn ans}cosx函数即反余弦函数函数y=cosx(x∈[0,π])的反函数叫做反余弦函数,记作y=arccosx(x∈[-1,1]).

你的程序有两处错误,已经改正,在修改的地方做了说明。修改后的程序如下:

#include<stdio.h>

int main()

{

double f(double x, int b)

double fac(int x)

double x,sum=1.0,m=1.0

int n=2,h=1

printf("Please enter x:")

scanf("%lf",&x)

do

{

h *=-1

m = f(x, n) / fac(n)

n += 2

sum += m*h

}while (m >1e-6)

printf("cosx=%lf", sum)

return 0

}

double f(double x, int n)

{

double m=1.0//此句m=x错误

int i

for (i = 0i <= n-1i++)

{

m *= x//此句m*=m错误

}

return(m)

}

double fac(int x)

{

double m=1.0

int i

for (i = 2i <= xi++)

{

m = m*i

}

return(m)

}