Mr.TT 发表于 2019-11-24 23:23:28

C语言中这两种有啥区别啊,sum=sum+i;位置不同

#include<stdio.h>
                int main()
                        {        int i=1;
                                int sum=0;
                                while(i<=10)
                                        {        sum=sum+i;
                                                printf("i=%d,sum=%d\n",i,sum);
                                                i++;
                                                                                }
                                printf("%d",sum);
                                getchar();
                                return 0;
                }
                               
______________________________________________________
#include<stdio.h>
                int main()
                        {        int i=1;
                                int sum=0;
                                while(i<=10)
                                        {
                                                printf("i=%d,sum=%d\n",i,sum);
                                                        sum=sum+i;
                                                i++;
                                                                                }
                                printf("%d",sum);
                                getchar();
                                return 0;
                }
                                                               

jackz007 发表于 2019-11-25 01:40:10

本帖最后由 jackz007 于 2019-11-25 11:23 编辑

      很显然,前一种每次显示的都是加过 i 的 sum,而后者每次显示的都是加 i 前的 sum,两个 sum 的大小始终差一个 i 值。但是,循环完后,二者最后显示出的 sum 数值应该是完全相同的。

sanguine_boy 发表于 2019-11-29 11:07:29

这个最直接的办法是你直接编译一下再对比就知道啦,第一个代码的while循环里是先将sum+i再打印输出,第二个代码是先打印前一个sum,然后sum+i
建议用for循环:int i,sum=0;
for(i=1;i<=10;i++)
{
   sum+=i;
   printf("i=%d,sum=%d\n",i,sum);
}
页: [1]
查看完整版本: C语言中这两种有啥区别啊,sum=sum+i;位置不同