这个公式是怎么得出的

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

luanhuansen

2016-02-27 21:08

 sum=sum+i*flag;

        i++;

        flag=-flag;

       


写回答 关注

3回答

  • 天地不仁_以_万物为刍狗
    2016-02-27 22:22:11
    已采纳

    sum=sum+i*flag; 

    //此句相当于sum += i*flag;相当于是用sum的当前值加上 i*flag 的值,然后覆盖掉当前值作为新值;还有 -=(减等) *=(乘等) /=(除等)

            i++;

            flag=-flag;

    //此句与上面相似,相当于flag *= -1 ,即flag *= -flag或者flag =(-1 * flag),用途是控制数值的正负,flag的初始化赋值是1,那么1*(-1)之后flag的值就是-1,第二次用-1 * flag(即-1 * -1)之后flag的值就是1,第三次是-1,第四次是1,以此类推,奇数次flag的值为1,偶数次flag的值为-1


    天地不仁_以... 回复luanhu...

    其实sum=sum+i*flag这也不是什么公式,就是为了题目的需要写出来的代码,所以也就谈不上是怎么得出来的喽,理解了意思就行。要说公式的话你把flag=-flag好好理解理解,基本上一个需要改变数值正负号的问题,都需要它来解决

    2016-02-29 09:11:34

    共 4 条回复 >

  • 无情的233
    2016-02-27 21:52:27

    基本就是把sum+i*flag的值赋给sum,然后i加上1,再把flag乘上-1

  • 无情的233
    2016-02-27 21:43:36

    敲敲代码,vc6单步执行看看就明白了

    我是这么做的

    #include <stdio.h>
    int main()
    {
        /* 小伙伴们:
               选择你们认为最合理的循环结构完成功能吧 */
        int sum = 0;  //定义计算结果变量sum
        int i = 1;    //定义循环数字变量i
     //定义符号状态变量flag
        
        //使用while循环
        while(i<=100)
        {
          
           i%2==0?(sum=sum-i):(sum=sum+i);
           
           i++;
        }
        printf("sum=%d",sum);
    }

    慕田峪220...

    6666

    2016-04-19 07:17:38

    共 2 条回复 >

C语言入门

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

926212 学习 · 20797 问题

查看课程

相似问题