#include #include // déginition du type Sequence représenté par untableau dynamique typedef struct { int *adr ; // addresse de la sequence int n ; // nbre d'éléments } Seq ; Seq filtre (int a , int b , Seq S) ; // renvoie une sequence qui contient les éléments de S compris entre a et b Seq filtre (int a , int b , Seq S) { Seq R ; // séquence résultat int j ; // pour construire R // parcours 1 : compter les éléments de R R.n = 0 ; for (int i=0 ; i= a && S.adr[i] <= b) { R.n = R.n+1 ; // un elt de plus dans R } ; } ; // allocation du tableau résultat R.adr = (int *) malloc(R.n * sizeof(int)) ; // parcours 2 : construire la séquence R j = 0 ; for (int i=0 ; i= a && S.adr[i] <= b) { R.adr[j] = S.adr[i] ; // ajoute cet élt dans R j = j+1 ; } ; } ; return R ; } int main() { int a, b ; Seq S ; Seq X ; printf("valeurs de a et b ?\n") ; scanf("%d %d", &a, &b) ; printf("nbre d'elts dans S ?\n") ; scanf("%d", &(S.n)) ; // allocation de S S.adr = (int *) malloc(S.n * sizeof(int)) ; // lecture de la séquence S printf("elements de S ?\n") ; for (int i=0 ; i