diff --git a/banque.c b/banque.c index 6a51278..5fac910 100644 --- a/banque.c +++ b/banque.c @@ -146,12 +146,11 @@ long meilleure_periode(const long *totaux, int nb_jours, int *debut, int *fin) } /* F6 : retrouve une transaction à partir de son id */ -const Transaction *rechercher_par_id(const Transaction *t, int n, int id) +const Transaction *rechercher_par_id(const Transaction *t, const int *indices_par_id, int n, int id) { - for (int i = 0; i < n; i++) - if (t[i].id == id) - return &t[i]; - return NULL; + if (id < 0 || id >= n) + return NULL; + return &t[indices_par_id[id]]; } /* F7 : nombre de paires de transactions de montants opposés (a + b = 0) */