int n,t,i,j,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=1;
for(j=1;j<=i;j++)
t=t*j;
sum=sum+t;
}
printf("%d",sum);
system("pause");
int n,t,i,j,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=1;
for(j=1;j<=i;j++)
t=t*j;
sum=sum+t;
}
printf("%d",sum);
system("pause");
首先这段代码的功能是执行楼上所说的计算:1!+2!+3!+...+n! 的和
然后运行情况:
(注:for循环中,如果不加大括号,默认的只执行for后的一个语句)
假设:n=4;
1.进入for(i=1;i<=n;i++)中:
i=1;t=1;
进入for(j=1;j<=i;j++)中:
j=1;(满足j<=i)
t=t*j;(注:t=1*1=1)
此次for(j=1;j<=i;j++)中的语句执行完,j++;j=2;不满足j<=i;
for(j=1;j<=i;j++)循环结束
执行sum=sum+t;(注:sum=0+1*1=1*1)
此次for(i=1;i<=n;i++)中的语句执行完,i++;i=2;满足i<=n;
2.再次进入for(i=1;i<=n;i++)循环:
i=2;t=1;
进入for(j=1;j<=i;j++)中:
j=1;(满足j<=i)
t=t*j;(注:t=1*1=1)
此次for(j=1;j<=i;j++)中的语句执行完,j++;j=2;满足j<=i;
t=t*j;(注:t=1*1*2=1*2;)
此次for(j=1;j<=i;j++)中的语句执行完,j++;j=2;不满足j<=i;
for(j=1;j<=i;j++)循环结束
执行sum=sum+t;(注:sum=1*1+1*2即sum=1!+2!)
此次for(i=1;i<=n;i++)中的语句执行完,i++;i=2;满足i<=n;
3.再一次进入for(i=1;i<=n;i++)循环:
i=3;t=1;
进入for(j=1;j<=i;j++)中:
......
如上循环下去,直到
此次for(i=1;i<=n;i++)中的语句执行完,i++;i=6;不满足i<=n;
for(i=1;i<=n;i++)循环结束;
后话:运行情况可通过调试,一步一步的走,看的清楚,希望对你有帮助(求采纳)