这个哪里错了?真心求教

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

草帽的意志

2016-09-25 16:12

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

写回答 关注

2回答

  • JustWannaHugU
    2016-09-25 21:33:06
    已采纳

    你的意思是说sum的值和答案给的不一样是吗?

    这不是错误,while 、do while 、for三者都能实现循环功能

    只是你将这三个循环都写在一起了

    写在一起也就算了,你没有初始化sum的值

    所以sum一直是累加的

    因此你的答案不符

    如果改的话

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


    草帽的意志

    非常感谢!

    2016-09-25 22:14:58

    共 1 条回复 >

  • Stanislas
    2016-09-25 21:24:40

    没错啊,用一种就行,不用三个都用。三个都用你没重置sum的值

C语言入门

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

926025 学习 · 20793 问题

查看课程

相似问题