C语言学习历程——编程练习3——03

来源:互联网 发布:淘宝耐克旗舰店卖假货 编辑:程序博客网 时间:2024/05/16 01:00

3.  编写函数fun(int *a, int n, int *odd, int *even),功能是:
  求出数组a[]中所有奇数之和以及所有偶数之和。
  并利用指针odd返回奇数之和,利用指针even返回偶数之和。 
  例如:a[]的值依次为:1,9,2,3,11,6;
  则利用指针odd返回奇数之和24;利用指针even 返回偶数之和 8。


分析:遍历数组a寻找奇数和偶数,分别求和就ok了


/**************************************************************
  编写函数fun(int *a, int n, int *odd, int *even),功能是:
  求出数组a[]中所有奇数之和以及所有偶数之和。
  并利用指针odd返回奇数之和,利用指针even返回偶数之和。 
  例如:a[]的值依次为:1,9,2,3,11,6;
  则利用指针odd返回奇数之和24;利用指针even 返回偶数之和 8。
**************************************************************/


#include <stdio.h>


#define N 10


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


for (i = 0; i < n; i++)
{
if (a[i] % 2 == 0)
{
*odd += a[i];  //遍历数组a寻找偶数相加
}
else
{
*even += a[i];  //奇数相加
}
}
}


void PrintArr(int *a, int n)
{
int i = 0;


for (i = 0; i < n; i++)
{
printf ("%d  ", a[i]);
}
printf ("\n");
}


int main()
{
int a[N] = {2,3,14,6,5,7,46,5,16,9};   //初始化数组a
int odd = 0;
int even = 0;


printf ("The original array is :\n");
PrintArr(a, N);
fun (a, N, &odd, &even);
printf ("odd = %d\n", odd);
printf ("even = %d\n", even);


return 0;
}

0 0
原创粉丝点击