使用循环计算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;
}
#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;
}
i++不能放在else里面,因为第一个i=1,i就会在if里面一直循环,进入不了else,i永远等于1,成了死循环。
i++也不能放if前面,这样会少了i=1,变成sum=50
else
{
sum -= i;
i++;
}