这个sum=sum+flag*i; flag=-flag;原理是什么? 老是搞不懂

来源:4-10 循环结构之三种循环比较

慕的地5096752

2019-10-12 00:54


    for(i=1;i<=100;i++)
    {
        sum=sum+flag*i;
        flag=-flag;
        i++;
    } 
    printf("sum=%d\n",sum);
   
    return 0;   
}


写回答 关注

2回答

  • MJCX13013
    2020-03-01 21:41:08

    你就把flag当做1来运算

    需要负数时,把flag乘-1,flag就成了-1,把他与i相乘,i就成了负数

    第二次乘-1时,flag就又变为+1

    从而实现一正一负

  • 慕田峪1437935
    2019-10-12 17:02:56

    这有什么搞不懂,flag=-flag是循环体里的内容代表正负切换。如果flag初值为1则第一次循环为-1,第二次为+1

    sum是求和,SUM=0,在第一次循环SUM=0+FLAG*I,改变的始终是flag*i,sum不过是记录他改变过程的总变化


C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题