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)
}