求解C语言编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积,用while语句编写

 我来答
淦海瑶s1
2012-04-12 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:747万
展开全部
要是就10项的话,应该不会溢出,可以这么做
1/(1*2*3....*10)
int i=0,a=1;
float s;
while(i++<=10)
a*=i;
s=1.0/a;

要是考虑通用性,可以这么做
int i=1;
flost s=1;
while(i++<=10) //第一项是1,i初始值可以是0,也可以是1,就是多一次循环的问题
s*=1.0/i;
wlg1091557947
2012-04-12 · TA获得超过890个赞
知道小有建树答主
回答量:625
采纳率:25%
帮助的人:522万
展开全部
#include<stdio.h>
void main()
{
float s=1;
int i=0;
while(i<11)
{
i++;
s=s*1.0/i;
}
printf("%10.9f\n",s);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BardMercy
2012-04-12 · TA获得超过573个赞
知道答主
回答量:209
采纳率:0%
帮助的人:235万
展开全部
int i = 1;
float result = 1, m ;
while(i < 11)
{
m = 1 / i ;
result *= m;
i++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
家douge
2012-04-12 · 超过15用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:43.2万
展开全部
//本人对C不熟copy了一下下面的代码,稍微修改了一下,说下算法
//如果问题是Tn=1*(1/2)*(1/3)*...*(1/n)的话,那么Tn=1/(1*2*3*...*n)
int i = 1;
float result = 1 ;
while(i < 11)
{
result *= i;
i++;
}
result=1.0/result;
printf("%f",result);

参考资料: 数学

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tianzixuan418
2012-04-12 · TA获得超过118个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:176万
展开全部
int i,sum=0,t=1;
i=1;
while(i<=10)
{
t*=1/i;
sum+=t;
i++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qingshixiaojia
2012-04-12
知道答主
回答量:4
采纳率:0%
帮助的人:6411
展开全部
main(){
float x=1,y=1;
while(x<=10)
{y=y*(1/x);
x++;
}
printf("%f",y);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式