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

为什么这段程序里不能是++n

#include <stdio.h>
int main()
{
    // 定义变量sum, num
    int sum, num; 
    sum = 0;
    for(num = 0;num<=10;++num) //for循环条件与num的变化值
    {
     sum=sum+num; //计算每次数字之间的和sum
    }
    printf("10以内数的和为:%d", sum);
    return 0;
}


为什么不可以是++n?

正在回答

6 回答

其实在这里++m和m++没什么区别,因为num是0,如果num是1就不行了


0 回复 有任何疑惑可以回复我~
对于这道题其实没什么差别,因为首先是判断num是不是<=0,接下来执行求和语句num+=sum,第三部才是num的自增,应为这一步无论是先自增还是后自增对于下一步来说都不影响,都会在下一次求和之前加1,只不过++n对于这道题其实没什么差别,因为首先是判断num是不是<=0,接下来执行求和语句num+=sum,第三部才是num的自增,应为这一步无论是先自增还是后自增对于下一步来说都不影响,都会在下一次求和之前加1,只不过++num是一次循环完毕后,而num++是当即运行。um是一次循环完毕后,而num++是当即运行。
0 回复 有任何疑惑可以回复我~
#1

慕斯6557155

有重复的,凑合看
2018-12-11 回复 有任何疑惑可以回复我~

此处 num++ 意思就是,先取num的值,即num=0,并不是取了num的值后就进入到表达式2的判断,而是进行num+1=1,得到num=1后随即进行表达式2的判断。

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

不输出的话都一样 都是变成n=n+1

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

我跟你的疑问一样


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

++n是先加再取值,这样会导致第一个数字为2而不是1

n++是先取值再加,他会先去i=1,然后运行i+1并将值赋予i中得到2,以此类推

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

慕运维5519014

不会呀,n初始值为0,先加再取也是1啊,,,我好像不太懂你说的,,兄dei
2018-11-11 回复 有任何疑惑可以回复我~
#2

闰土无声 回复 慕运维5519014

确实++n和n++是没什么区别的,不管n++还是++n,n都要自身加1,但是如果是n++,则返回值为旧值,如果是++n,则返回值为新值。
2018-11-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这段程序里不能是++n

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