#include<stdio.h>
int main()
{
int i,j,n;
double t,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=1; //每次进循环 t=1 那第一次进循环的时候 i=1 到第二循环的时候 表达式一 j=2 但表达式二 j又<=1 这怎么运行的
for(j=2;j<=i;j++)
t=t*j;
s=s+t;
}
printf("%f",s);
return 0;
}
在C语言for循环里双循环中有一部分赋值不懂
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 浪客 2022-04-26 00:12关注
表达式一 j=2 但表达式二 j又<=1 ,循环条件不满足,不进行循环,直接进行后面的s+t运算。
for(j=2;j<=i;j++)
t=t*j;
这个是算阶乘的,每个数独立计算,这样如果不把t初始化为1,那么后面数的阶乘是在前一个数基础上乘的,阶乘计算就不对了。这个循环可以简化为
for(t=1,i=1;i<=n;i++) { t*=i; //计算阶乘, s+=t; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 孟德尔随机化怎样画共定位分析图
- ¥18 模拟电路问题解答有偿
- ¥15 Matlab在app上输入带有矩阵形式的初始条件发生错误
- ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
- ¥15 误删注册表文件致win10无法开启
- ¥15 请问在阿里云服务器中怎么利用数据库制作网站
- ¥60 ESP32怎么烧录自启动程序
- ¥50 html2canvas超出滚动条不显示
- ¥15 java业务性能问题求解(sql,业务设计相关)
- ¥15 52810 尾椎c三个a 写蓝牙地址