//提示用户输入一个整数,计算1-2+3-4+、、、+n的和。
//奇数的时候是正,偶数的时候为负,求他们的和。
#include<stdio.h>
int main()
{
int n = 0;
while (n<=0)
{
printf ("请输入一个正整数: ");
scanf("%d",&n );
}
int sum=0;
int number = 0;
while (number < n )
{
number++;
if (number%2 == 0)
{
number = number * (-1);
sum +=number;
}else
{
sum += number;
}
}
printf ("sum =%d\n",sum );
return 0;
}
//以上是错误代码,但是不会报错,就是输入一个整数后,没有反应了。
将第二个循环体中得if语句换成这个就能正常运行:
if (number%2 == 0)
{
//number = number * (-1);
sum -=number;
}else
{
sum += number;
}
我想问得是,这两个感觉没什么区别,为什么第一个不能运行呢?求大神解答。
|
|