为了账号安全,请及时绑定邮箱和手机立即绑定

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

使用循环计算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;
}


正在回答

3 回答

#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;
}


0 回复 有任何疑惑可以回复我~

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

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

else
  {
   sum -= i;

    i++;

  }


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926024    人
  • 解答问题       20793    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信