c语言程序 1*2*3····*100

#include<stdio.h>main(){doublen,s;n=1;s=0;while(n<=100){s*=n;n++;}printf("1*2*3*...*%... #include<stdio.h>
main()
{double n,s;
n=1;
s=0;
while(n<=100)
{s*=n;
n++;
}
printf("1*2*3*...*%lf=%lf\n",n,s);
}
有什么错
--------------------Configuration: 33t1 - Win32 Debug--------------------
Linking...
33t1(2).obj : error LNK2005: _main already defined in 33t1.obj
Debug/33t1.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.

33t1.exe - 1 error(s), 0 warning(s)
展开
 我来答
泡沫书铺
2011-08-01 · TA获得超过266个赞
知道答主
回答量:19
采纳率:100%
帮助的人:12.5万
展开全部
1.初始化的s的值错了
s=1;
2.输出语句printf错了,因为经过循环后,n值是101,不是100。
printf("1*2*3*...*%lf=%lf\n",n-1,s);
3.建议你用整型变量来处理这道题,因为每一步的结果都是整数
望采纳
百度网友ad8bb83
2011-08-01 · TA获得超过4259个赞
知道大有可为答主
回答量:1469
采纳率:100%
帮助的人:1616万
展开全部
#include<stdio.h>
main()
{double n=1,s=1;
while(n<=100)
{s*=n;
n++;
}
printf("1*2*3*...*%f=%.10e\n",n-1,s);
}
这么大的输出,最好用指数形式,如上
追问
恩,谢谢,显示的是1*2*3*·····*100.00000=9.33e+157。怎么把那个100.000000变成100不要后面的那么多0
追答
输出用%.0f即可
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weekwonder
2011-08-01 · TA获得超过2055个赞
知道小有建树答主
回答量:1456
采纳率:0%
帮助的人:1587万
展开全部
这里需要s=1,不然连乘下去全变成0了。
更多追问追答
追问
还有什么错,100的阶层是不是冲出范围?那么求10的阶层
追答
{double n,s;
n=1;
s=1;
while(n<=10)
{s*=n;
n++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qr8345776
2011-08-01 · TA获得超过202个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:127万
展开全部
位数过大了 超过lf的范围了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式