
#include <stdio.h>
#include <stdlib.h>
/*Le prototype de la fonction*/
int* getEvenNumbers(int *a, int);

int main ()
{
    /*Declaration des variables dans main*/
    int N,  ctr, *tableauPair, i=0 ;

    /*Boucle qui sert a demander a l'utilisateur un nombre entier positif*/
    do
    {
        printf("Svp entrer un entier positif: \n");
        scanf("%d", &N);
        if(N<=0)
            printf("Le nombre n'est pas positif\n");
    }
    while (N<=0); /*Si le nombre n'est pas entier positif le programme avertit l'utilisateur et lui redemande son choix*/

    /*Modifier la graine de ma fonction srand*/
    srand(time(NULL));
    /*Allocation dynamique de la memoire pour le pointeur tab*/
    int *tab=(int*)malloc(N*sizeof(int));

    /*Boucle qui donne aleatoirement des valeurs pour les cases qu'on a alloue avec tab*/
    for(ctr=0; ctr<N; ctr++)
    {
        tab[ctr]=rand();
        printf("a:%d\n", tab[ctr]);

    }
    /*Appel de fonction qui envoie les nombres pairs*/
    tableauPair=getEvenNumbers(tab,N);

    /* Boucle qui imprime les nombres pairs envoyes de la fonction precdente*/
    printf("Nombre pair:  \n");
    for(ctr=0; ctr < tableauPair[0]; ctr++)
    { printf("%d\n",tableauPair[ctr]);
            i=i+1;
            /*Indiquer qu'il n'y a pas de nombres pairs*/
        }

    if(i==0)
        printf("Il n'y a pas de nombre pair");

    /*Liberer la memoire dynamique*/
    free(tab);
    free(tableauPair);
    return 0;}

    /*FONCTION QUI INDIQUE LES NOMBRES PAIRS */
    int* getEvenNumbers(int *tab, int N)
    {
        /*Declaration des variables */
        int ctr,i, nouvelleGrandeurTableau=0;
         for(ctr=0; ctr<N; ctr++)
            {if(tab[ctr]%2==0)
                 nouvelleGrandeurTableau=nouvelleGrandeurTableau+1;}
    nouvelleGrandeurTableau= nouvelleGrandeurTableau+1;
    //printf("nouvellegrandeu: %d\n",nouvelleGrandeurTableau );

        /*Allocation dynamique de la memoire pour le pointeur tableauPair*/
        int *tableauPair=(int*)malloc(nouvelleGrandeurTableau*sizeof(int));

        /*Boucle qui met les valeurs pairs de tab dans les cases dynamiques detableauPair*/
        i=1;
        for(ctr=0; ctr<N; ctr++)
           { while(i<nouvelleGrandeurTableau)
              {if(tab[ctr]%2==0)
                  {tableauPair[i]=tab[ctr];
                  i++;}}}

        *(tableauPair+0)= nouvelleGrandeurTableau;


                   return tableauPair;
    }
