关于用ifelse语句求和i++在if语句前后的问题

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

weixin_慕仔6176033

2020-05-13 14:00

使用循环计算1-2+3-4+5-6+…-100的值以下两种运行结果都为-50。其语句是否有误?

#include <stdio.h>
int main()
{
 /* 小伙伴们:
     选择你们认为最合理的循环结构完成功能吧 */
 int sum = 0;  //定义计算结果变量sum
 int i = 1;    //定义循环数字变量i

 //使用while循环
 while (i <= 100)
 {
  i++;
  if (i % 2 == 0)
  {
   sum += i;
  }
  else
  {
   sum -= i;

  }
  
 }

 printf("sum=%d\n", sum);

 return 0;
}


#include <stdio.h>
int main()
{
 /* 小伙伴们:
     选择你们认为最合理的循环结构完成功能吧 */
 int sum = 0;  //定义计算结果变量sum
 int i = 1;    //定义循环数字变量i

 //使用while循环
 while (i <= 100)
 {
  if (i % 2 != 0)
  {
   sum += i;
  }
  else
  {
   sum -= i;

    i++;

  }
  
 }

 printf("sum=%d\n", sum);

 return 0;
}


写回答 关注

2回答

  • qq_慕容3083719
    2020-05-14 22:12:06
    已采纳

    #include <stdio.h>
    int main()
    {
     /* 小伙伴们:
         选择你们认为最合理的循环结构完成功能吧 */
     int sum = 0;  //定义计算结果变量sum
     int i = 1;    //定义循环数字变量i

     //使用while循环
     while (i <= 100)
     {
      if (i % 2 != 0)
      {
       sum += i;
      }
      else
      {
       sum -= i;

        i++;//此语句应该放在else复合语句外。

      }
      
     }

     printf("sum=%d\n", sum);

     return 0;
    }


  • qq_慕仔7050987
    2020-05-17 16:29:07

    i++不能放在else里面,因为第一个i=1,i就会在if里面一直循环,进入不了else,i永远等于1,成了死循环。

    i++也不能放if前面,这样会少了i=1,变成sum=50

    else
      {
       sum -= i;

        i++;

      }


C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题