C语言编程,OJ

Python09

C语言编程,OJ,第1张

试一试每一次while循环中一开始把数组a初始化一下再赋值。

搞不好是因为上一次的结果影响了下一次的运算。

例如下面的测试数据:

4 4

-1 -1 -1 -1

-1 -1 -1 -1

-1 -1 -1 -1

-1 -1 9 -1

3 3

-1 -1 -1

-1 -1 -1

-1 -1 -1

那么问题在于:

1 . 输入的是整数,没说明是正整数,所以说输入的可能是-100,那么上述代码就有逻辑问题。

2. i和N的值应该在while循环里面从新赋值为i=1,N=0。否则随着迭代的增加,i和N就会是上次计算的值了。

#include<stdio.h>

int main()

{

int i=1,n,N=0

while((scanf("%d",&n))!=EOF)

{

i=1, N=0

if(n>=1)

{

while(i<=n)

{

N=N+i

i++

}

}

else{ // n为负数,不是要continue,而也是要计算。比如n=-2,就计算1+0+(-1)+(-2)

while(i>=n)

{

N=N+i

i--

}

}

printf("%d\n",N)

}

return 0

}