#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <assert.h>
void get_rand_nums(int * buf, int n);
void show_nums(const int * const buf, int n);
void get_even_odd(int * buf, int n, int * evens, int *odds, int *even_sum, int * odd_sum);
int main()
{
int buf[10] = {0};
const int n = 10;
int evens = 0, odds = 0, even_sum =0, odd_sum = 0;
get_rand_nums(buf, n);
show_nums(buf, n);
get_even_odd(buf, n, &evens, &odds, &even_sum, &odd_sum);
printf("\nevens = %d, even_sum = %d\nodds = %d, odd_sum = %d\n", evens, even_sum, odds, odd_sum);
getchar();
return 0;
}
/*
* 用于生成n个随机两个位数
*/
void get_rand_nums(int * buf, int n)
{
int i = 0;
assert(buf);
srand((
unsigned int)time(NULL));
for (; i < n; i++)
{
buf[i] = rand() % 90 + 10;
}
}
/*
* 输出生成的数据
*/
void show_nums(const int * const buf, int n)
{
int i = 0;
assert(buf);
for (; i < n; i ++)
{
printf("buf[%d] = %d\t", i, buf[i]);
if (0 == (i + 1) % 5)
{
printf("\n");
}
}
}
void get_even_odd(int * buf, int n, int * evens, int *odds, int *even_sum, int * odd_sum)
{
int i = 0;
assert(buf && evens && odds && even_sum && odd_sum);
for (; i < n; i ++)
{
if (0 == (1 & buf[i])) /*偶数*/
{
(*evens) ++;
*even_sum += buf[i];
}
else
{
(*odds) ++;
*odd_sum += buf[i];
}
}
}