为了账号安全,请及时绑定邮箱和手机立即绑定

++i与i++问题

#include <stdio.h>
int main()
{
    int i,sum=0;
    i=1;
    while( i<=100 )  
    {
        sum=sum+i;
         i=i++;
    }
    printf("100以内所有整数之和为:%d\n", sum);
    return 0;
}

为什么使用i=i++不能得出5050,i=++i可以得出5050//i++与++i都等同于加一

正在回答

3 回答

题主你没必要使用i=i++,直接用i++即可,因此你的问题就出在这里,当使用i=i++时,i的值等于i+1之前的值也就是它本身,当使用i=++i时,i的值等于i+1,由此,为了避免出现这种错误,推荐题主直接使用i++或者++i,在这种情况下两者是等价的。(不过神奇的是我在VS2017里用题主的方法都能得出5050,估计是编译器的问题,但是最好直接用i++或者++i)



0 回复 有任何疑惑可以回复我~

同上,所以i++循环算的其实是1加到101的和

0 回复 有任何疑惑可以回复我~

i++是先运算再加1,++i是先加1再运算

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926206    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

++i与i++问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信