C语言编程:计算并输出下列多项式的值 F(m)=1+1/(1!)+1/(2!)+.....+1/(m!)

#include<stdio.h>main(){inti,m;doubleh,sum=1.0,s;scanf("%d",&m);for(i=1,h=1.0;i<=m;i+... #include<stdio.h>
main()
{
int i,m;
double h,sum=1.0,s;
scanf("%d",&m);
for(i=1,h=1.0;i<=m;i++)
{
s=1/i;h=h*s;
if(i>1)
sum=sum+h;
}
if(i=1)
printf("%f",sum);
else
printf("%f",sum+1);
}

我的程序算法不知道有没有错,但我的算法不执行if后面的语句,请问哪里有问题
展开
 我来答
百度网友fb116dc
2012-12-08 · TA获得超过688个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:500万
展开全部

#include<stdio.h>

main()

{

    int i,m;

double h=1.0,sum=1.0,s;

scanf("%d",&m);

for(i=1;i<=m;i++)

{

s=(double)1/i;

h=h*s;

if(i>1)

sum=sum+h;

}

printf("%f\n",sum);

}

 

追问
谢谢
松甜恬0Je4ba
2012-12-08 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:4130万
展开全部
if(i=1) //判断相等是用 == 不是=???
printf("%f",sum);
else
printf("%f",sum+1);

还有你算for循环中计算的s是不对的,最后的结果也不正确
追问
对,我的判别等号写错了,还有“s=1/i”应该改为“s=1.0/i”,但我现在想问的是最后答案:当输入的i大于2时,sum用不用加1
追答
如果要用加1  那么输入1时也需要啊???

按照你给的式子

F(m)=1+1/(1!)+1/(2!)+.....+1/(m!)

如果输入1,则结果为2??? 这个式子是这样理解的吗??但你的程序中如果输入1,你的结果为1??
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吻的是你的纯
2012-12-08
知道答主
回答量:14
采纳率:0%
帮助的人:2.3万
展开全部
感觉不对,你的for语句里面不对吧,你应该分母和分子分开求,然后写个式子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-08
展开全部
i=1改为i==1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式