C语言中sum=sum+(i+=2)怎么理解?

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-29
c语言sum+=i 是什么意思

在C语言中这个属于复合赋值运算符中的一种。
表示把左边的变量除于右边变量的值赋予右边的变量 sum=sum+i; 可以简写为 sum+=i;还有 如 sum-=i;sum*=i; /=、%=等等,很多,样的表示方法可以让程序更加简洁。

扩展资料:
和sum+=i类似的的sum+=1/i的意思:
sum是用来求和的 sum+=1/i 分解开来就是sum = sum+1/i
也就是说每次 sum都在本身已经有的基础上再加上一个1/i
比如说
第一次 sum=0 sum+=1/i 也就是说 sum=0+1/1=1
第二次 sum=1 sum+=1/i 也就是说 sum=1+1/2=3/2
.........
一直这样累加到循环终止为止

sum+=++i的意思就是 sum=sum+(++i);++i也是一种运算,等价于i=i+1,取i加1后的结果。相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。
postfix-expression ++,后缀自增
postfix-expression --,后缀自减

扩展资料:
优先级:
C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
结合性:
C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。
如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。
如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。
参考资料来源:百度百科-C语言运算符号

先是i=i+2
再算sum=sum+i;
当i=1时 sum=0+3=3 i=3
当i=3时 sum=3+5=8 i=5
当i=5时 sum=8+7=15 i=7
当i=7时 sum=15+9=26 i=9
当i=9时 sum=26+9=35 因为先算i=i+2; i=9+2=11>10所以 i=9

整个程序是求100以内的偶数之和啊。+2的意思就是两个偶数之间就是相差2,前一个偶数不就是等于下一个偶数+2嘛

i+=n的意思就是i=i+n,所以i+=2就是i=i+2,你带到程序里就一目了然了,呵呵 每个C++参考书里都有讲解这部分,你可以翻翻书

i+=2,的意思就是i=i+2,接下来的应该能看懂了吧

  • C语言中编程计算1至100以内的奇数和偶数并分别求和,求代码
    答:C语言编程:求1到100奇数和,编程输出求和结果。int i ,sum;sum =0;for (i=1; i<100;i+2)sum = sum +i;printf("%d",sum);C语言中用循环语句分别统计1到100的整数和,奇数和和偶数并输出 include <stdio.h>int main(int argc, char *argv[]){ int i = 0; int sum1 = 0; int...
  • 怎么用c语言编写1+2-3+4-5...+100的程序来啊
    答:include <stdio.h> void main(){ int i;int sum=1;for(i=2; i<=100; i++){ if (i%2==0)//偶数相加 { sum=sum+i;} else//奇数 { sum=sum-i;} } printf("sum is %d", sum);}
  • 求助、求助 c语言 编程求2+4+6+8+...n n值从键盘输入 谢谢大侠们_百度...
    答:include <stdio.h> int main ( ){ int i,j,sum;sum=0;printf("请输入一个整偶数!\n");scanf("%d",&j);for(i=2;i<=j;i+=2){ sum=sum+i;} printf("sum=%d\n",sum);return 0;}
  • c语言中的语句
    答:你好,这个应该就是一个循环累加,比如 for(i=0;i<n;i++)for(j=0;j<n;j++)sum+=a1[i][j];意思就是将a1这个二维数组中的数据全部相加,即:sum=a1[0][0]+a1[0][1]+a1[0][2]+………a1[n][n];
  • c语言用三种循环语句编写程序2+4+6+8…+100的偶数和
    答:include <stdio.h>void main( ){int sum,i;sum=0;for(i=2;i<=100;i+=2){sum+=i;}printf("for循环计算所得值:%d\n",sum);i=2,sum=0;while(i<=100){sum+=i;i+=2;}printf("while循环计算所得值:%d\n",sum);i=2,sum=0;do {sum+=i;i+=2;}while(i<=100);printf(...
  • 用C语言编程计算2~100之间的素数和
    答:sushu[0] = 2;for(int i=3;i<=100;i++){ n = 0;for(int j=0;j<num;j++){ if(i%sushu[j] == 0)break;else n++;} if(n==num){ sushu[num]=i;printf("%d\n",i);num++;} } return num;} //2是sushu[0],从sushu[1]开始加 int addall(int sum,int num){ fo...
  • c语言编程利用自定义函数求两个数的和
    答:c语言编程利用自定义函数求两个数的和的方法如下:首先需要定义一个自定义函数,命名为sum,参数为两个整数a和b,返回值为整数类型。在自定义函数中,使用return语句返回a和b的相加结果。在主函数中,定义两个整数变量x和y,使用scanf()函数从键盘输入它们的值。在主函数中,调用sum(x,y)函数,并将...
  • C语言问题…
    答:执行完i++后,在sum+=i这个语句中i已经是你i++后i的数值了,所以错误就出现在这里,下面是计算的步骤楼主可以参考下~那重新自己算一下:第一次循环:i=0,sum=1;运算完了以后i=1;第二次循环:i=1,sum=3;运算完了以后i=2;第三次循环:i=2,sum=6;运算完了以后i=3;第四次循环...
  • 请问c语言中 i=1 ; sum=(++i)+(++i);求sum的值
    答:sum=(++i)+(++i); 第一个++i,表达式的值是2,i也自增1,i的值为2 第二个++i,i的值在第一个++i中已经自增1,也就是说在第二个++i中,i的值在2的基础上自增,即i 的值为3。第二个表达式(++i)的值也为3。由此:(++i)+(++i)等价于2+3=5 所以,sum的值为:5 ...
  • 求和运算 C语言程序设计 sum=1+(1+2)+(1+2+3)+...+(1+2+3+...+n...
    答:include "stdio.h"main(){ long int sum=1;long int n,i;printf("请输入n的值:");scanf("%ld",%n);for(i=2;i<=n;i++)sum+=(1+i)*i/2;printf("sum=%ld",sum);getch();} 这里用到了梯形面积公式1+2+3+4+...+n=(1+n)*n/2 ...