有以下程序
main()
{ int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf(“%d\n",s);
}
s、i的初值分别为0和1,判断循环条件,表达式“1<3”成立,执行“i++,s+=i”后,i和s的值分别为2和1,继续判断循环条件,表达式“2<3”成立,执行“i++,s+=j”后,i和s的值分别为3和3,再次判断循环条件,表达式“3<3”不成立,循环结束。
问题来了,输出结果为什么是5?
在求for循环时遇到问题,求解!
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-link 2021-12-08 20:21关注
你的理解有点错误。i++,s+=i是循环结束再执行。所以循环第一遍执行完后,才执行表达式i++,s+=i,这个表达式先执行i++,执行完后i=2,然后s+=i,这样s就是2。第二次循环同样执行完后才执行表达式i++,s+=i,执行完后i=3,s+=3,s=2+3=5
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 做个有关计算的小程序
- ¥15 MPI读取tif文件无法正常给各进程分配路径
- ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
- ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
- ¥15 setInterval 页面闪烁,怎么解决
- ¥15 如何让企业微信机器人实现消息汇总整合
- ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
- ¥15 如何用Python爬取各高校教师公开的教育和工作经历
- ¥15 TLE9879QXA40 电机驱动
- ¥20 对于工程问题的非线性数学模型进行线性化