编写函数计算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;
}
求大佬更改程序
展开
 我来答
紫薇参星
科技发烧友

2018-12-25 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3601万
展开全部

你的求数列和的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;

}

zll小周
2018-12-24 · TA获得超过174个赞
知道小有建树答主
回答量:511
采纳率:86%
帮助的人:76.7万
展开全部
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;
}
追答
m+=3是i+=3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式