#include <stdio.h>
#define MAX N 10
int even(int n){
if(n%2==0){
return 1;
}else
return 0;
}
int OddSum(int List[],int N){
int i,sum;
for(i=0;i<=N;i++){
if(even(List[i]==0)){
sum += List[i];
}
}
return sum;
}
int even(int n);
int OddSum(int List[],int N);
int main(){
int List[MAXN],N,i;
scanf("%d",&N);
printf("Sum of ("));
for (i=0;i<N;i++)
scanf("%d",&List[i]);
if (even(List[i])==0)
printf("%d",List[i]);
printf(")=%d\n",OddSum(List,N));
return 0;
}
代码中的错误比较多,给修正一下,好好比较一下吧。
#include <stdio.h>
#define MAXN 10
int even(int n){
if(n%2==0){
return 1;
}else
return 0;
}
int OddSum(int List[],int N){
int i,sum=0; //sum应该初始化为0
for(i=0;i<N;i++){ //循环不能是i<=N,等于N是会越界
if(even(List[i])==0){ //括号位置不对
sum += List[i];
}
}
return sum;
}
int main(){
int List[MAXN],N,i;
scanf("%d",&N);
for (i=0;i<N;i++)
scanf("%d",&List[i]);
printf("Sum of ("); //这个printf放到输入之后
for (i=0;i<N;i++)
if (even(List[i])==0)
printf("%d ",List[i]); //每个奇数之间加个空格比较好
printf(")=%d\n",OddSum(List,N));
return 0;
}
oddsum函数里除了等号位置,for里面的判断语句应该是i<N
main里面的for应该把下面三句内容括号括起来
if(even(List[i])==0)
{
...
}
括号位置不要错了