求我这段代码错在哪里 很绝望 题目是习题5-2 使用函数求奇数和 (15分)

图片说明
我的代码int even( int n){
int f;
if (n%2==1) return 0;
else return 1;

}
int OddSum( int List[], int N ){
int sum=0;
for (int i=1;i<=N;i++){
if (even(List[i]==0)){
sum+=List[i];
}
}
return sum;}

标准答案代码int even( int n ) {
int flag;
if(n%2)
flag = 0;
else
flag = -1;
return flag;
}
int OddSum( int List[], int N ) {
int sum = 0;
for(int i = 0; i < N; i++) {
if(even(List[i])==0) {
sum += List[i];
}
}
return sum;
}

PTA上报错是0 sample等价,有正负零,结果为正

答案错误
3 ms 256 KB
1 结果为负

答案错误
3 ms 296 KB
2 超过10个整数

答案错误
7 ms 384 KB
3 一个偶数

答案正确
3 ms 296 KB

很绝望 求救

你的代码

for (int i=1;i<=N;i++){

和答案的

for(int i = 0; i < N; i++) {

一样吗,答案的索引是从0开始的,要学会打断点调试,逐步分析

odd是奇数,even是偶数,起码从英文单词的角度来说是这样