I have an array of numbers .. what is needed : to create 2 new arrays by malloc one for even numbers and one for odd numbers and we need to print them in main with the size of each array too
Array is 1,2,5,6,8,4,5,10,65,69,98,76,46,49,67
Even Array must be: 2,6,8,4,10,98,76,46
Odd Array must be: 1,5,5,65,69,49,67
The function must be written like this (this is how the teacher wants)
void evenodd(int a[],int** even,int* evensize,int** odd,int* oddsize)
my code:
#include <stdio.h>
#include <stdlib.h>
#define N 15
void evenodd(int a[],int** even,int* evensize,int** odd,int* oddsize)
{
int i,j,cnte,cnto,e,o;
cnte=cnto=0;
for(i=0;i<N;i++)
if(a[i]%2==0) cnte++;
else cnto++;
even=(int**)malloc(sizeof(int)*cnte);
*evensize=cnte;
odd=(int**)malloc(sizeof(int)*cnto);
*oddsize=cnto;
for(i=0,o=0,e=0;i<N;i++)
if(a[i]%2==0)
even[e++]=a[i];
else odd[o++]=a[i];
return;
}
int main()
{
int i;
int a[N]={1,2,5,6,8,4,5,10,65,69,98,76,46,49,67};
int *even,evensize,*odd,oddsize;
evenodd(a,&even,&evensize,&odd,&oddsize);
printf("Even Numbers Array: ");
for(i=0;i<evensize;i++)
printf("%d ",even[i]);
printf("\nSize of even array is: %d",evensize);
printf("\n\n");
printf("Even Numbers Array: ");
for(i=0;i<oddsize;i++)
printf("%d ",odd[i]);
printf("\nSize of even array is: %d",oddsize);
}
i think the error is in Malloc .. but i dont know why ..