当前位置: 代码迷 >> C语言 >> for循环
  详细解决方案

for循环

热度:437   发布时间:2006-09-09 21:40:58.0
for循环
s=1+1/1*2+1/2*3+,,,,,,,+1/n(n+1)
这个程序怎么写呀!我一点思路都没有!
----------------解决方案--------------------------------------------------------

1+(1/1 * 1/2)+(1/2 * 1/3)+ … +(1/n * 1/(n+1))

你可以写个函数用以计算1/n * 1/(n+1)

然后for循环调用它,把值累加

代码还是自己写吧


----------------解决方案--------------------------------------------------------
其实就等于2-1/(n+1)
----------------解决方案--------------------------------------------------------
#include <stdio.h>
main()
{int i,n;
float s=1;
printf("please input:\n" );
scanf("%d",&n);
for (i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
printf("%f",s);
}
----------------解决方案--------------------------------------------------------
以下是引用爱疯了在2006-9-9 21:40:58的发言:
s=1+1/1*2+1/2*3+,,,,,,,+1/n(n+1)
这个程序怎么写呀!我一点思路都没有!

着个不就是等于
1 + 1/1*2 + 1/2*3 + 1/3*4 吗?
为啥是1/n(n+1)

[此贴子已经被作者于2006-9-9 22:23:04编辑过]


----------------解决方案--------------------------------------------------------

哦哦 我理解错了


----------------解决方案--------------------------------------------------------
着个简单啊 分开看不就行了吗
[1 ] + [1/1*2 ] + [ 1/2*3] + [ 1/3*4]
s=1 s=s+1/1*2 s=s+1/2*3 s=s+1/3*4

----------------解决方案--------------------------------------------------------
以下是引用Sally_SJL在2006-9-9 22:21:12的发言:
#include <stdio.h>
main()
{int i,n;
float s=1;
printf("please input:\n" );
scanf("%d",&n);
for (i=1;i<=n;i++)
s=s+1.0/(i*(i+1));
printf("%f",s);
}

刚才我写的和这个一样,可就是怎么算也不对,结果发现有一个小小的问题

s=s+1.0/(i*(i+1));

这句写成了 s=s+1/(i*(i+1)); 把1改为1.0就对了,谁能解释一下?


----------------解决方案--------------------------------------------------------
以下是引用waynebeat在2006-9-9 22:30:55的发言:

刚才我写的和这个一样,可就是怎么算也不对,结果发现有一个小小的问题

s=s+1.0/(i*(i+1));

这句写成了 s=s+1/(i*(i+1)); 把1改为1.0就对了,谁能解释一下?


1/(i*(i+1)) 这是取整的


----------------解决方案--------------------------------------------------------
但我定义sum时也是float呀
----------------解决方案--------------------------------------------------------
  相关解决方案