C语言计算sinx的近似值

Python013

C语言计算sinx的近似值,第1张

/*sinx=x-x^3/3!+x^5/5-x^7/7!...*/

#include<stdio.h>

#include<math.h>

#define ACCURARY 0.00000001

main()

{

int i=1,j=1,k,n=1,x

printf("sinx=x-x^3/3!+x^5/5-x^7/7!...\n请输入一个x\n")

scanf("%d",&x)

double sinx=0

for(i=1fabs(t)>=ACCURARYi+=2)

{

for(k=1k<=ik++)

{n=n*i}

j++

t=pow(-1,j)*pow(x,i)/n

sinx=sinx+t

}

printf("sin%d=%.8f\n",x,sinx)

}

你编译一下,看看行不,我好久没弄了。

#include "stdio.h"

int main(int argc,char *argv[]){

double x,s,t,eps

int i

printf("Please enter x & eps(R:0<eps<1)...\n")

if(scanf("%lf%lf",&x,&eps)!=2 || eps<=0 || eps>=1){

printf("Input error, exit...\n")

return 0

}

printf("sin(%g)≈",x)

for(s=t=x,x*=x,i=1t>=epsi++){

(t*=x)/=((i*i<<2)+i+i)

s += i&1 ? -t : t

}

printf("%f\n",s)

return 0

}

运行样例:

修改及测试代码如下:

#include <stdio.h>

#include <math.h>

double fact(n)

//数据类型使用有误

{

int x

double y

y=1

for(x=1x<=nx++){

y=y*x

}

return y

}

int main()

{//思路有些乱

double i,sum,x

int n=1,flag=1

scanf("%lf",&x)

i=x//第一项

sum=0

while(fabs(i)>=0.000001) //少了一个0

{

sum+=i

flag=-flag

n=n+2

i=(flag*pow(x,n)/fact(n))

}

printf("%.10f\n",sin(x))

printf("sin<%f>=%.10f",x,sum)

return 0

}