残念终成殇 2021-12-08 20:16 采纳率: 66.7%
浏览 46
已结题

在求for循环时遇到问题,求解!

有以下程序
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?

  • 写回答

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 求指导ADS低噪放设计
  • ¥15 CARSIM前车变道设置
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存