firechicken 发表于 2020-11-7 17:15:35

C程序设计求结果

main(
{int i,sum;
for(i=1;i<6;i++)sum+=i;
printf("%d\n",sum);}
这道题的答案是15,但是我在程序上面运行的结果是得16
我的理解是先让SUM+=i得SUM=1再执行i++
有没有大佬可以详细告诉我i++i的优先级和这道题的详细过程。谢谢。{:5_92:} {:5_92:} {:5_92:}

昨非 发表于 2020-11-7 17:25:40

#include<stdio.h>

int main()
{
        int i,sum=0;//初始化sum的值为0,在零的基础上累加得到的就是15
        for (i = 1; i < 6; i++)
                sum += i;
        printf("%d\n",sum);
}

昨非 发表于 2020-11-7 17:28:24

本帖最后由 昨非 于 2020-11-7 17:39 编辑

这道题,和i自加自减没有什么关系
for (i = 1; i < 6; i++)
这句是最常用的for循环,里面i的取值就是1到5
而for (i = 1; i <= 6; i++)
里面i的取值为1到6

满意的话请设为最佳答案哦

昨非 发表于 2020-11-7 17:38:37

c语言中for循环的执行顺序:
先判断i<6
然后执行循环体(也就是sum求和的内容)
最后i++,i自加1 进入下次循环的判断

firechicken 发表于 2020-11-7 18:06:02

昨非 发表于 2020-11-7 17:28
这道题,和i自加自减没有什么关系

这句是最常用的for循环,里面i的取值就是1到5


谢谢

18169947283 发表于 2020-11-7 19:45:40

编译出来就是15 啊
页: [1]
查看完整版本: C程序设计求结果