c语言for循环,一个例子看不懂,谁能帮忙解释一下,谢谢。
#include<stdio.h>intmain(){doubleSn=0,k;intn,i,j;scanf("%d",&n);for(i=1;i<=n;i++){k=1...
#include<stdio.h>
int main()
{
double Sn=0,k;
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
k=1;
for(j=1;j<=i;j++)
k=k*j;
Sn+=k;
}
printf("%.0lf",Sn);
return 0;
} 展开
int main()
{
double Sn=0,k;
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
k=1;
for(j=1;j<=i;j++)
k=k*j;
Sn+=k;
}
printf("%.0lf",Sn);
return 0;
} 展开
展开全部
我觉得,书里这种命名方式放到公司里是要被批的体无完肤的。不过话说回来,咱还得硬着头皮学不是。
其实最主要的是看懂每个变量表示什么意思。
n是用户输入的数。然后循环n次。i依次等于[1,2,3,...,n]
这层循环还是比较好理解的。用户输入几,就循环几次。其中 i 就表示第几次循环了。
然后是跟k和j相关的这一段内层循环:
k=1;
for(j=1;j<=i;j++)
k=k*j;
k初始值是1,然后内层循环 i 次,j表示内层循环到第几次了。k依次等于上一次的k乘以j。
也就是说:
第1次内层循环执行完,k等于1。
第2次内层循环执行完,k等于1*2。
第3次内层循环之行完,k等于1*2*3。
执行i次。也就是k等于1*2*3*...*i。其实就是i!啦(i的阶乘)。
重点:k等于i的阶乘。
然后,Sn+=k;就是Sn表示i的阶乘的累加。
最后,根据上面标黑的文字,应该能得出来结论了,这个程序是让用户输入n,然后求1!+2!+3!+...+n!。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询