fork download
  1. #include <stdio.h>
  2.  
  3. struct Livre {
  4. char titre[100];
  5. int nombre_pages;
  6. int statut; // Book already borrowed = 1, Available = 0
  7. };
  8.  
  9. struct Lecteur {
  10. char nom[100];
  11. char prenom[100];
  12. int nb_livres; // le nombre de livres dans le tableau "livres"
  13. struct Livre* livres[100]; // livres deja empruntes (eventuellement rendus)
  14.  
  15. };
  16.  
  17. void desabonnement(struct Lecteur * plecteurs[], int * nombre_lecteurs, struct Lecteur * lect)
  18. {
  19.  
  20. struct Lecteur empty = { // Cette variable me permettra de transformer la valeur qui m'intérésse pas
  21. 0
  22. };
  23. int i = 0;
  24. int j = 0;
  25.  
  26. while ((plecteurs[i]->nom != lect->nom) && (plecteurs[i]->prenom != lect->prenom))
  27. {
  28. i++;
  29. }
  30. while (j < plecteurs[i]->nb_livres)
  31. {
  32. plecteurs[i]->livres[j]->statut = 0;
  33. j++;
  34. }
  35. while (i+1 < * nombre_lecteurs)
  36. {
  37. *plecteurs[i] = *plecteurs[i + 1];
  38. i++;
  39. }
  40. *plecteurs[i] = empty;
  41. }
  42.  
  43. int main()
  44. {
  45. struct Livre l1 = { "boom" , 50 , 1 };
  46. struct Livre l2 = { "bim" , 50 , 1 };
  47. struct Livre l3 = { "chaud" , 50 , 0 };
  48. struct Livre l4 = { "tcho" , 50 , 1 };
  49. struct Livre l5 = { "braa" , 50 , 1 };
  50.  
  51. struct Livre *p1 = & l1;
  52. struct Livre *p2 = & l2;
  53. struct Livre *p3 = & l3;
  54. struct Livre *p4 = & l4;
  55. struct Livre *p5 = & l5;
  56.  
  57. struct Lecteur le1 = { "Boso" , "Nen" , 2 , {&l1, &l2} };;
  58. struct Lecteur le2 = { "Jogar" , "Elo" , 1 , {&l3} };;
  59. struct Lecteur le3 = { "marche" , "silteplait" , 2 , {&l4, &l5} };
  60.  
  61. struct Lecteur *tableau_test[3] = {&le1, &le2, &le3};
  62. int le_nombre = 3;
  63.  
  64. desabonnement(tableau_test, &le_nombre, &le3);
  65.  
  66. printf(" %d ", tableau_test[0]->nb_livres);
  67. le_nombre--;
  68.  
  69. return 0;
  70. }
Success #stdin #stdout 0s 4476KB
stdin
Standard input is empty
stdout
 2