c语言求s=1!+2!+3!+…+n!(n由输入决定)。求大神能详细解读一下这个程序,尤其是for语句里面是什么意思

#include<stdio.h>voidmain(){inti,j,n;longintt=1,sum=0;printf("inputn:",&n);scanf("%d"... #include<stdio.h>
void main()
{
int i,j,n;
long int t=1,sum=0;
printf("input n:",&n);
scanf("%d",&n);
for (i=1;i<=n;i++)
{
t=1;
for(j=1;j<=i;j++)
t=t*j;
sum=sum+t;
}
printf("n!=%ld",sum);
}
展开
 我来答
百度网友ca560fe
2019-09-17 · TA获得超过2.3万个赞
知道答主
回答量:70
采纳率:100%
帮助的人:3万
展开全部

第一二行代码:int i,j,n;
long int t=1,sum=0;//定义了三个整数型(短整型)的变量,定义两个长整整型变量并初始化。

第三行代码:printf("input n:",&n);//提示输入。

第四行代码:scanf("%d",&n);利用scanf()函数输入n。

第五行代码:for (i=1;i<=n;i++)//进入for循环,外部for循环的主要作用是进行阶乘的求和。

第六七八行代码:t=1;
for(j=1;j<=i;j++)
t=t*j;//引用t这个变量进行对i这个阶乘的计算,并将结果储存在t中。内部的for循环的主要作用是计算阶乘。

第九行代码:sun=sum+t;//计算阶乘的和。

第十行代代码:printf("n!=%ld",sum);//利用printf()函数对结果进行输出。

扩展资料:

循环的嵌套:

1,while循环包含while循环的内层循环。

2,do…while循环包含do…while循环的内层循环。

3,for循环包含for循环的内层循环。

4,while循环包含do…while循环的内层循环。

5,for循环包含while循环的内层循环。

6,do…while循环包含for循环的内层循环。

参考资料来源:百度百科—C语言

风林火陰山雷
推荐于2017-11-26 · TA获得超过1.1万个赞
知道大有可为答主
回答量:2569
采纳率:100%
帮助的人:2005万
展开全部
您好!很高兴为您解答。

解释如下:

#include<stdio.h>
void main()
{
int i,j,n;
long int t=1,sum=0;//必要的初始化,保证后面for循环的语句“sum=sum+t;”能正常执行。
printf("input n:",&n);
scanf("%d",&n);//输入式中n
for (i=1;i<=n;i++)
{
t=1;//作为计算阶乘的起始
for(j=1;j<=i;j++)//这个内层循环计算的是 i !(i由1递增至n)
t=t*j;
sum=sum+t;//每进行一次外层循环,加一个 i !由此实现整个式子的计算
}
printf("n!=%ld",sum);//输出计算结果
}

望采纳~如您还有不解,欢迎追问~
追问
第一层for(i=1;i<=n;i++)
{
t=1;
还有第二层for(j=1;j<=i;j++)
t=t*j
sum=sum+t;
这里还是不太懂,第一层for是什么意思?第二层你说是内层循环计算的是 i !(i由1递增至n),为什么不是j!,感觉这个好难懂。。。
追答
简单来说,第一层for负责算加法,第二层for算阶乘。

先不管第二层for。第一层for:
for (i=1;i<=n;i++)
{
t=1;
//***********第二层for算出了“各项阶乘t”***********//
sum=sum+t;//把每一项阶乘加起来
}

第二层for:
for(j=1;j<=i;j++) t=t*j;
在循环里,j从1开始,每执行一次循环就自加1。
比如i为3时,循环的流程:j=1,判断“j<=3”(为真,循环得到执行),t=t*j=1*1=1,j自加1(j=2);判断“j<=3”(为真,循环得到执行),t=t*j=1*2=2!,j自加1(j=3);判断“j<=3”(为真,循环得到执行),t=t*j=2!*3=3!,j自加1(j=4);判断“j<=3”(为假,立即跳出循环)。得到t=3!,也就是计算了t=i!。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
victory666
2013-11-30
知道答主
回答量:8
采纳率:0%
帮助的人:10.4万
展开全部
for里面是循环 i=1是第一次循环是i的值,i<=n是i的循环范围,i++是i的值每次加1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Nice丨Moon
2013-11-30
知道答主
回答量:2
采纳率:0%
帮助的人:2742
展开全部
刚学C??要看懂 for里面的最好懂得方法是你代几个数一步一步试试 然后你应该会明白吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式