大一新手,cos的近似算法?

#include
#include
int main()
{
double x,i,sum,n,c;
scanf("%lf",&x);
for(i=2,sum=1;i<=100;i+=2)
{
for(n=1;n<=i;n++)
c*=n;
sum+=pow(-1,i/2)*pow(x,i)/c;
}
printf("%.3f\n",sum);
}
算出来的值永远是1,哪里出了问题?

qq_43308851
precious。。。 能把公式贴出来吗
一年多之前 回复

1个回答

#include<stdio.h>
#include<math.h>
int main()
{
     double x,i,sum=1,n,c;
     scanf("%lf",&x);
     for(i=1; i<=100; i++)
     {
         c=1;
         for(n=1;n<=2*i;n++)
              c*=n;
         sum+=pow(x,2*i)/c*pow(-1,i);
     }
     printf("%.3f\n",sum);
}

另外注意下,这个程序只能算0~pi/2的cos,并且输入的是弧度而不是角度。
如果你要算45的cos,那么就是pi/4,要输入0.785结果是0.707,如果你要算90的cos,就是pi/2,输入1.57,结果0.001(近似0)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问