请编写一个函数fun(int*a,int n,int *odd,int *even),函数的功能是分别求出数组a中所有的奇数之和偶数之和

请编写一个函数fun(int*a,int n,int *odd,int *even),函数的功能是分别求出数组a中所有的奇数之和,通过even返回偶数之和。
例如:a数组元素中的值依次为:1,9,2,3,11,6;则通过odd返回奇数之和24;则通过even返回偶数之和8.

#include <stdio.h>
#define N 20
fun (int *a, int n, int *odd, int *even)
{
就是这里少点东西,大家帮忙写下

}

main( )
{ int a[N]={1,9,2,3,11,6}, i, n=6, odd, even;
printf ( "The original data is : \n" );
for ( i = 0; i < n; i ++ ) printf ( "%5d", *(a+i) );
printf("\n\n");
fun ( a, n, &odd, &even );
printf ( "The sum of odd numbers: %d\n", odd );
printf ( "The sum of even numbers: %d\n", even );
NONO() ;
}
NONO()
{/* 本函数用于数据读入和结果写入文件, 考生无需修改 */
int i, j, odd, even, n, a[N] ;
FILE *rf, *wf ;

rf = fopen("in.dat", "r") ;
if(rf == NULL) {
printf("在考生文件夹下数据文件in.dat不存在!") ;
return ;
}
wf = fopen("out.dat", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n) ;
for(j = 0 ; j < n ; j++) fscanf(rf, "%d", a+j) ;
fun(a, n, &odd, &even) ;
fprintf(wf, "odd=%d,even=%d\n", odd, even) ;
}
fclose(rf) ;
fclose(wf) ;
}

第1个回答  推荐于2018-05-08
总觉得楼上的回答有的好像有问题。

fun (int *a, int n, int *odd, int *even)
{
int i;
*odd = 0;
*even = 0;

for(i=0;i<n;i++)
{
if(a[i]%2) *odd += a[i];
else *even += a[i];
}
}

希望楼主试验一下,谢谢采纳 ^_^本回答被提问者和网友采纳
第2个回答  2011-03-22
void fun (int *a, int n, int *odd, int *even)
{
int i;
*odd=0;
*even=0;
for(i=0;i<n;i++)
if(a[i]%2==0)
*even+=a[i};
eles
*odd+=a[i];
}

那个什么参考啊。我觉得有错误啊。
第3个回答  2011-03-22
void fun (int *a, int n, int *odd, int *even)
{
int i;
*odd = 0;
*even = 0;
for(i=0; i < n ;i++){
if(!(a[i]%2)){
*even+=a[i];
}else{
*odd+=a[i];
}
}
}
第4个回答  2011-03-22
fun (int *a, int n, int *odd, int *even)
{

for(int i=0;i<n;++i)
{
*odd = 0;
*even = 0;
if(a[i]%2)
(*odd)+=a[i];
else
(*even)+=a[i];
}

}
第5个回答  2011-03-22
*odd=0;
*even=0;
for (int i=0;i<N;i++)
{
if (a[i] %2==0)
{
*even=*even+a[i];
}
else
{
*odd=*odd+a[i];
}
}
相似回答