问题里面最后-1的n-1次方 ,不是-1乘n减-1,大老 看看我的程序哪里错了,我又改了一个,再请看看

#include <stdio.h>
#include <math.h>
int main()
{
int n,i,j;
long int sum=1;
double x,sum2=0.0;
scanf("%lf,%d",&x,&n);
for(i=n;i>=1;i--)
{
for(j=i;j>0;j--)
sum1=j*sum1;
sum2=(pow(-1.0,i-1)pow(x,2i-1)/sum1)+sum2;
}
printf("%.4f",sum2);
return 0;
}

img

sum1= i * (i-1) * sum1;
i初始值是1,岂不是sum1永远是0
另外sum1用int型是不够的,阶乘值很大

int main()
{
    double jc=1,x,zs = 1,res = 0;
    int n,i,flag = -1;
    scanf("%lf,%d",&x,&n);
    zs = x;
    res += zs/jc;
    for(i=2;i<=n;i++)
    {
        jc *= (2*i-1)*(2*i-2);
        zs *= x*x;
        res += flag * zs/jc;
        flag = -flag;
    }
    printf("%.4lf",res);
}

结果保留4位小数。

printf("%.4f",sum2);

#include<stdio.h>
#include<math.h>
int jc(int n);
int main()
{
int m=1,f=1,i=1;
double sinx=0.0,x,z;
double ans;
scanf("%lf",&x);
z=x;
double a;
a=fpow(x,m)/jc(m);
int t=1;
while(fabs(a)>=1e-7&&t<6)
{
t++;
sinx=sinx+a;
f=f
(-1);
i=i+1;
m=2i-1;
a=f
pow(x,m)/jc(m);
}
printf("sinx=%lf\n",sinx);
return 0;
}
int jc(int n)
{
int ans;
if(n==0||n==1) ans=1;
else ans=n*jc(n-1);
return ans;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632