编写函数计算N!,调用该函数计算下式的值,S=1+(1/(1+4!))=(1/(1+4!+7!))+......+(1/(1+4!+7!+.....+19!)
#include<stdio.h>intjiecheng(intm){intx=1,i;for(i=1;i<=m;i++){x=x*i;}}floatjc(intk){f...
#include<stdio.h>
int jiecheng(int m)
{
int x=1,i;
for(i=1;i<=m;i++)
{
x=x*i;
}
}
float jc(int k)
{
float i,x,y,s=1.0,S=1.0;
int m,a;
for(m=4;m<=k;m+3)
{
a=jiecheng(m);
s+=a;
y=1/s;
S+=y;
}
return S;
}
int main()
{
int k;
float s;
scanf("%d",&k);
s=jc(k);
printf("%d",s);
return 0;
}
求大佬更改程序 展开
int jiecheng(int m)
{
int x=1,i;
for(i=1;i<=m;i++)
{
x=x*i;
}
}
float jc(int k)
{
float i,x,y,s=1.0,S=1.0;
int m,a;
for(m=4;m<=k;m+3)
{
a=jiecheng(m);
s+=a;
y=1/s;
S+=y;
}
return S;
}
int main()
{
int k;
float s;
scanf("%d",&k);
s=jc(k);
printf("%d",s);
return 0;
}
求大佬更改程序 展开
2个回答
展开全部
你的求数列和的C语言程序,我帮你改完了,你看看吧(改动的地方和原因见注释)
#include<stdio.h>
long long jiecheng(int m)//这里返回长长整型,防止19!数太大,数据溢出
{
long long x=1;//这里定义x为长长整型,原因同上
int i;
for(i=1;i<=m;i++)
{
x=x*i;
}
return x;//这里返回阶乘值x
}
float jc(int k)
{
float i,x,y,S=1.0;
int m;
long long a,s=1;//这里定义a,s为长长整型,原因同上
for(m=4;m<=k;m=m+3)
{
a=jiecheng(m);
s+=a;
y=1.0/s;//这里把y=1/s;改成y=1.0/s;因为C语言整数除以整数,商会自动取整,所以用double型除以整数,以保留商的小数
S+=y;
}
return S;
}
int main()
{
int k;
float s;
scanf("%d",&k);
s=jc(1+3*(k-1));//这里把s=jc(k);改成s=jc(1+3*(k-1));
printf("%f",s);//这里把printf("%d",s);改成printf("%f",s);
return 0;
}
展开全部
jc函数有问题
//阶乘
int JC(int i)
{
int sum=1;
for(int j=1;j<=i;++j)
sum*=j;
return sum;
}
float Jcs(int k)
{
int sum=0;
float sum2=0;
for(int i=1;i<=k;)
{
sum+=JC(i);
sum2+=1.0/sum;
m+=3;
}
return sum2;
}
//阶乘
int JC(int i)
{
int sum=1;
for(int j=1;j<=i;++j)
sum*=j;
return sum;
}
float Jcs(int k)
{
int sum=0;
float sum2=0;
for(int i=1;i<=k;)
{
sum+=JC(i);
sum2+=1.0/sum;
m+=3;
}
return sum2;
}
追答
m+=3是i+=3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询