怎么算出的结果不一样?

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

DF49

2017-12-22 14:53

怎么算出的结果不一样?
写回答 关注

2回答

  • 悼慈
    2017-12-24 11:26:14
    #include <stdio.h>
    int main()
    {
        int sum = 0;  //定义计算结果变量sum
        int i = 1;    //定义循环数字变量i
        int flag =-1; //定义符号状态变量flag,,,这儿我习惯-1 
        while(i<100)
        {
           
            sum+=i*flag;
            ++i;
            flag*=-1;
        }
        
        printf("sum=%d\n",sum); //先输出,后赋值。 
        i = 1;  
        sum = 0;
        do{
             //printf("i=%d\n",i*flag);
            sum+=i*flag;
            //printf("sum=%d\n",sum);
            i++;
            flag*=-1;
        }while(i<=100);
        printf("sum=%d\n",sum);
     i = 1; //先输出,后赋值。 
     sum = 0; 
        for(i=1;i<=100;i++)
        {
           sum+=i*flag;
            flag*=-1;
        }  
        printf("sum=%d\n",sum); 
        return 0;    
    }

    我改了一下你的代码。

    有什么再问吧

  • DF49
    2017-12-22 15:51:53

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

C语言入门

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

926206 学习 · 20797 问题

查看课程

相似问题