请编一个函数fun(int *a,int n,int *odd,int *even),函数的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参n给了数组中数据的个数:利用指针odd返回奇数之和,利用指针even返回偶数之和。


例如:数组中的值依次为:1,8,2,3,11,6;则利用指针odd返回奇数之和15;利用指针even返回偶数之和16。

代码如下:

				
//fun函数如下:

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


//完整程序如下:

#include<stdio.h>
#define N 100

int main()
{
     int input(int n,int a[N]);
     int output(int n,int a[N]);
     int fun(int *a,int n,int *odd,int *even);
     int a[N],n,odd,even;
     printf("Please input the totle number n:");
     scanf("%d",&n);
     printf("Please input the array:\n");
     input(n,a);
     printf("The original array is:\n");
     output(n,a);
     fun(a,n,&odd,&even);
     printf("The sum of the odd number is:%d\n",odd);
     printf("The sum of the even number is:%d\n",even);
     return 0;
}

int output(int n,int a[N])//数据输出
{
     for(int i=0;i<n;i++)
     {
         printf("%-6d",a[i]);
     }
     printf("\n");
     return 0;
}

int input(int n,int a[N])//数据输入
{
     for(int i=0;i<n;i++)
     {
         scanf("%d",&a[i]);
     }
     return 0;

}

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




联系我们 | 友情链接