C语言for的嵌套看不懂是怎么执行的

#include <stdio.h>
int main()
{
int i,j,n,t;
long s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;
}
printf("%ld",s);
return 0;

}

就是算1+1*2+1*2*3+1*2*3*4+...是吧,内层的循环是计算每组阶乘的,外层的控制循环次数并求和,比如说输入的n为3时
外层循环开始i=1
t=1
内层循环计算1到i的乘积t=t*j=1*1=1
s=s+t=0+1=1

外层循环i=2
t=1
内层循环计算1到i的乘积t=t*j=1*1=1 (j=1) t=1*2=2(j=2)

s=s+t=1+2=3

外层循环i=3
t=1
内层循环计算1到i的乘积t=t*j=1*1=1 (j=1) t=1*2=2(j=2) t=2*3=6(j=3)
s=s+t=3+6=9追问

意思是在内层循环的时候
循环
t=t*j
然后等循环完毕就执行s=s+t
对吗???

追答

对,内循环没有花括号,循环体只有后面那一句

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网