#include <stdio.h>
#include <math.h>
int main()
{
double x,c,j=1.0;
int i,n;
scanf("%lf %d",&x,&n);
for(i=1,c=1.0;i<=(2n);i++)
{
j=(2i)(2*i-1)*1.0;
c+=pow((-1),i)pow(x,(2i))*1.0/j;
};
printf("cos(%.6f)=%.6f",x,c);
return 0;
}
你的代码求阶乘明显不对。
#include <stdio.h>
#include <math.h>
int main() {
double x,c,j=1.0;
int i,n,k;
scanf("%lf%d",&x,&n);
c=1.0;
for (i=1;i<=n;i++) {
j=1.0;
for (k=1;k<=2*i;k++) j*=(double)k;
c+=pow(-1.0,i)*pow(x,2*i)/j;
}
printf("cos(%.6lf)=%.6lf",x,c);
return 0;
}
//输入1.5 3
//输出cos(1.500000)=0.070117
2n
2i
?