输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算: 读入一批正整数(以零或负数为结束标志),求其中的奇数和。

#include
int main()
{
int repeat;
int n,sum=0;
scanf("%d",&repeat);
while(repeat--){
while(scanf("%d",&n)){
if(n<=0){
break;
}
if(n%2==1||n==2){
sum+=n;
}
}
}
printf("%d\n",sum);
return 0;
}
为什么我的这串代码输入两串测试用例得到的结果会累加起来
比如第一个答案应该是16第二个是111
然后我得到的是第一个16第二个127

你把sum=0放在两个while之间