这个c语言程序我想求20的阶乘输出的是21

#include<stdio.h>intmain(){inti,sum;for(i=1,sum=0;i<=100;i++);{sum=sum+i;}printf("sum... #include<stdio.h>
int main()
{
int i,sum;
for(i=1,sum=0;i<=100;i++);
{
sum=sum+i;
}
printf("sum=%d\n",sum);
return 0;
}
展开
 我来答
小猪的知识库
2012-10-10 · TA获得超过164个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:152万
展开全部
#include <stdio.h>

double f(double n) //一个递归
{
if(n==0 || n==1) return 1;
else
return n*f(n-1);
}

int main()
{
double s, n=20 ;
s=f(n);

printf("s=%f\n",s);
return 0;
}
你可以运行一下 ,结果和百度计算的是一样的。

20的阶乘如果用int存储的话会溢出的,所以我用double存储。其实用一个int数组存储应该更好。
满意请采纳。
lhflysky
2012-10-09
知道答主
回答量:47
采纳率:0%
帮助的人:15.4万
展开全部
你这不是求阶乘啊 你输出的 0+1+2+.......+100
20的阶乘:1*2*3....*20#include<stdio.h>
int main()
{
int i,s = 1;
for(i=1;i<=20;i++);
{
s=s*i;
}
printf("s=%d\n",s);
return 0;
}
追问
sorry我贴错了,但是我跟你写的一样,为啥输出的是21
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式