#include <stdio.h>
struct Livre {
char titre[100];
int nombre_pages;
int statut; // Book already borrowed = 1, Available = 0
};
struct Lecteur {
char nom[100];
char prenom[100];
int nb_livres; // le nombre de livres dans le tableau "livres"
struct Livre* livres[100]; // livres deja empruntes (eventuellement rendus)
};
void desabonnement(struct Lecteur * plecteurs[], int * nombre_lecteurs, struct Lecteur * lect)
{
struct Lecteur empty = { // Cette variable me permettra de transformer la valeur qui m'intérésse pas
0
};
int i = 0;
int j = 0;
while ((plecteurs[i]->nom != lect->nom) && (plecteurs[i]->prenom != lect->prenom))
{
i++;
}
while (j < plecteurs[i]->nb_livres)
{
plecteurs[i]->livres[j]->statut = 0;
j++;
}
while (i+1 < * nombre_lecteurs)
{
*plecteurs[i] = *plecteurs[i + 1];
i++;
}
*plecteurs[i] = empty;
}
int main()
{
struct Livre l1 = { "boom" , 50 , 1 };
struct Livre l2 = { "bim" , 50 , 1 };
struct Livre l3 = { "chaud" , 50 , 0 };
struct Livre l4 = { "tcho" , 50 , 1 };
struct Livre l5 = { "braa" , 50 , 1 };
struct Livre *p1 = & l1;
struct Livre *p2 = & l2;
struct Livre *p3 = & l3;
struct Livre *p4 = & l4;
struct Livre *p5 = & l5;
struct Lecteur le1 = { "Boso" , "Nen" , 2 , {&l1, &l2} };;
struct Lecteur le2 = { "Jogar" , "Elo" , 1 , {&l3} };;
struct Lecteur le3 = { "marche" , "silteplait" , 2 , {&l4, &l5} };
struct Lecteur *tableau_test[3] = {&le1, &le2, &le3};
int le_nombre = 3;
desabonnement(tableau_test, &le_nombre, &le3);
printf(" %d ", tableau_test
[0]->nb_livres
); le_nombre--;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgTGl2cmUgewogICAgY2hhciB0aXRyZVsxMDBdOwogICAgaW50IG5vbWJyZV9wYWdlczsKICAgIGludCBzdGF0dXQ7IC8vIEJvb2sgYWxyZWFkeSBib3Jyb3dlZCA9IDEsIEF2YWlsYWJsZSA9IDAKfTsKCnN0cnVjdCBMZWN0ZXVyIHsKICAgIGNoYXIgbm9tWzEwMF07CiAgICBjaGFyIHByZW5vbVsxMDBdOwogICAgaW50IG5iX2xpdnJlczsgLy8gbGUgbm9tYnJlIGRlIGxpdnJlcyBkYW5zIGxlIHRhYmxlYXUgImxpdnJlcyIKICAgIHN0cnVjdCBMaXZyZSogbGl2cmVzWzEwMF07IC8vIGxpdnJlcyBkZWphIGVtcHJ1bnRlcyAoZXZlbnR1ZWxsZW1lbnQgcmVuZHVzKQoKfTsKCnZvaWQgZGVzYWJvbm5lbWVudChzdHJ1Y3QgTGVjdGV1ciAqIHBsZWN0ZXVyc1tdLCBpbnQgKiBub21icmVfbGVjdGV1cnMsIHN0cnVjdCBMZWN0ZXVyICogbGVjdCkgCnsKCiAgc3RydWN0IExlY3RldXIgZW1wdHkgPSB7ICAvLyBDZXR0ZSB2YXJpYWJsZSBtZSBwZXJtZXR0cmEgZGUgdHJhbnNmb3JtZXIgbGEgdmFsZXVyIHF1aSBtJ2ludMOpcsOpc3NlIHBhcwogICAgMAogIH07CiAgaW50IGkgPSAwOwogIGludCBqID0gMDsKCiAgd2hpbGUgKChwbGVjdGV1cnNbaV0tPm5vbSAhPSBsZWN0LT5ub20pICYmIChwbGVjdGV1cnNbaV0tPnByZW5vbSAhPSBsZWN0LT5wcmVub20pKSAKICB7CiAgICBpKys7CiAgfQogIHdoaWxlIChqIDwgcGxlY3RldXJzW2ldLT5uYl9saXZyZXMpIAogIHsKICAgIHBsZWN0ZXVyc1tpXS0+bGl2cmVzW2pdLT5zdGF0dXQgPSAwOwogICAgaisrOwogIH0KICB3aGlsZSAoaSsxIDwgKiBub21icmVfbGVjdGV1cnMpIAogIHsKICAgICpwbGVjdGV1cnNbaV0gPSAqcGxlY3RldXJzW2kgKyAxXTsKICAgIGkrKzsKICB9CiAgKnBsZWN0ZXVyc1tpXSA9IGVtcHR5Owp9CgppbnQgbWFpbigpIAp7CiAgICBzdHJ1Y3QgTGl2cmUgbDEgPSB7ICJib29tIiAsIDUwICwgMSB9OwogICAgc3RydWN0IExpdnJlIGwyID0geyAiYmltIiAsIDUwICwgMSB9OwogICAgc3RydWN0IExpdnJlIGwzID0geyAiY2hhdWQiICwgNTAgLCAwIH07CiAgICBzdHJ1Y3QgTGl2cmUgbDQgPSB7ICJ0Y2hvIiAsIDUwICwgMSB9OwogICAgc3RydWN0IExpdnJlIGw1ID0geyAiYnJhYSIgLCA1MCAsIDEgfTsKCiAgICBzdHJ1Y3QgTGl2cmUgKnAxID0gJiBsMTsKICAgIHN0cnVjdCBMaXZyZSAqcDIgPSAmIGwyOwogICAgc3RydWN0IExpdnJlICpwMyA9ICYgbDM7CiAgICBzdHJ1Y3QgTGl2cmUgKnA0ID0gJiBsNDsKICAgIHN0cnVjdCBMaXZyZSAqcDUgPSAmIGw1OwoJCiAgICBzdHJ1Y3QgTGVjdGV1ciBsZTEgPSB7ICJCb3NvIiAsICJOZW4iICwgMiAsIHsmbDEsICZsMn0gfTs7CiAgICBzdHJ1Y3QgTGVjdGV1ciBsZTIgPSB7ICJKb2dhciIgLCAiRWxvIiAsIDEgLCB7JmwzfSB9OzsKICAgIHN0cnVjdCBMZWN0ZXVyIGxlMyA9IHsgIm1hcmNoZSIgLCAic2lsdGVwbGFpdCIgLCAyICwgeyZsNCwgJmw1fSB9OwoKICAgIHN0cnVjdCBMZWN0ZXVyICp0YWJsZWF1X3Rlc3RbM10gPSB7JmxlMSwgJmxlMiwgJmxlM307CiAgICBpbnQgbGVfbm9tYnJlID0gMzsKCQogICAgZGVzYWJvbm5lbWVudCh0YWJsZWF1X3Rlc3QsICZsZV9ub21icmUsICZsZTMpOwogICAgCiAgICBwcmludGYoIiAlZCAiLCB0YWJsZWF1X3Rlc3RbMF0tPm5iX2xpdnJlcyk7CiAgICBsZV9ub21icmUtLTsKICAgIAogICAgcmV0dXJuIDA7Cn0=