C语言求sinx

C语言求sinx我这个程序 运行不出结果 怎么改

第1个回答  2019-11-12

#include<stdio.h>

int main()

{ int i,n;

  double t,x,y=0;

  scanf("%lf%d",&x,&n);

  y=t=x;

  x*=x;

  for(i=3;i<2*n;i+=2)

  {t=-t*x/(i*(i-1));

   y+=t;

  }

  printf("%.8lf\n",y);

  return 0;

}

第2个回答  2018-01-04
修改了一下。 用 前后项的递推: c=c*x*x/(float)i/(float)(i-1);
#include <stdio.h>
#include <math.h>

int main(){
double x,a,b=1,c=1,sum;
int i,count=1;
scanf("%lf",&x);
sum=x;
for (i=3; fabs(c)>1e-05;i=i+2){
c=c*x*x/(float)i/(float)(i-1);
b= -b;
sum=sum + c*b;
count++;
}
printf("%.3lf %d\n",sum,count);
return 0;
}本回答被网友采纳
第3个回答  2019-11-12
#include<stdio.h>
int main() {
double x,sum=0,pre=0;
int n,i=1;
scanf("%lf %d",&x,&n);
pre=x;
for(i=1; i<=2*n-1; i+=2) {
sum+=pre;
pre=-pre*x*x/((i+1)*(i+2));
}
printf("%.8f",sum);
return 0;
}
相似回答