This is a start:
Code:
#include <stdlib.h>
#include <stdio.h>
#define ARR_SIZE 100 /* allow some extra slop */
#define WORK_SIZE 75 /* in case we have more even than odd or vice-versa */
int main(int argc, char *argv[]){
char *result[5]={"even","odd"};
int odd[WORK_SIZE]={0},
even[WORK_SIZE]={0},
big_array[ARR_SIZE]={0};
int i=0,
tmp=0;
int odd_cnt=0,
even_cnt=0,
big_cnt=0;
for(i=0;i<WORK_SIZE;i++) {
tmp=rand();
if(tmp%2)
odd[odd_cnt++]=tmp;
else
even[even_cnt++]=tmp;
}
for(i=0,even_cnt=0,odd_cnt=0,big_cnt=0;odd[odd_cnt]||even[even_cnt];i++,big_cnt++){
if(big_cnt%2){
if(odd[odd_cnt])
big_array[i]=odd[odd_cnt++];
}else{
if(even[even_cnt])
big_array[i]=even[even_cnt++];
}
}
tmp=0;
printf("Note: a value of zero is displayed as even, but is a filler\n");
printf(" and so can be in either an odd or an even element, regardless.\n");
for(i=0;i<=big_cnt;i++){
printf("element number %2d, element value %6d %-5s\n",
i,big_array[i],result[big_array[i]%2]);
}
return 0;
}