Structure de données avec C

Fermé
alberttoo Messages postés 3 Date d'inscription dimanche 10 juin 2012 Statut Membre Dernière intervention 10 juin 2012 - 10 juin 2012 à 15:35
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 10 juin 2012 à 18:29
Bonjour,

bonjour tous le monde je suis bloqué sur les questions 3.4. et 5 de cette exo
les fonctions j'arrive a les faire mais avec les condition non, votre aide sera la bienvenue, merci d'avance
voila l'exo :

L'objectif de cet exercice est de representer une base de données de dvd, chaque dvd est représenteé par une structure de données comportant les champs suivants : un titre(char*),une année de production (integer ),une catégorie(char*).les catégories peuvent par exemple avoir les valeur s suivantes : « comedie », « suspense » , « aventure » , « action », ect.
1. Definissez un type structuré dvd
2. Ecrivez une fonction saisie qui permet à l'utilisateur de saisir les champs d'un dvd donnée
3. Ecrivez une fonction qui prend en parametre un tableau de dvd et affiche à l'écran tous ceux d'une categorie donnée, avec leur position dans le tableau
4. Ecrivez une fonction d'affichage à l'écran de tous les films d'un tableau de dvd dont l'année de productionb est supérieur ou égale à une année donnée
5. Ecrivez une fonction qui retourne la position d'un dvd dans un tableau, étant donnée un titre et une année

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
10 juin 2012 à 16:03
Bonjour,

Commence par nous donner ce que tu as commencé à faire. Et dis-nous ce que tu n'arrives pas avec les conditions. On pourra t'aider plus facilement.
0
alberttoo Messages postés 3 Date d'inscription dimanche 10 juin 2012 Statut Membre Dernière intervention 10 juin 2012
10 juin 2012 à 16:22
voila ce que j'ai fais

Include<stdio.h>
Include<string.h>
Typedef structure{
Char titre[256];
Int annee;
Char categorie[256];
} dvd;
//2 question
Void saisie(dvd *d){
Printf(`'titre : `') ;
Scanf(`'%s'',d->titre) ;
Printf(`'annee : `') ;
Scanf(`'%s'',&(d->annee));
Printf(`'categorie :'') ;
Scanf(`'%s'',d->categorie);
}
//3 question
Void affiche(dvd *d){
Printf(`'titre :%s/n annee : %d /n categorie : %s:'', d->titre,d->annee,d->categorie);

//cette function c'est juste pour afficher sans la condition d'afficher tous ceux d'une categorie //donnée , avec leur position dans le tableau
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
10 juin 2012 à 17:20
Bonjour,
Lorsque tu postes un code sur le forum, merci d'utiliser la balise "code" (à droite du bouton souligné). Sinon c'est illisible.
Sinon concernant ton code, ce n'est pas Char mais char (en minuscule). Pareil pour int, include etc.
Scanf(''%s'',&(d->annee));
Il faut utiliser des guillemets droits en début. Et pas de & puisqu'il s'agit d'un tableau. Donc ce sera : scanf("%s", d->annee);
Pour aller à la ligne ce n'est pas /n mais \n.
Un conseil, mets un \n en fin de printf pour forcer l'affichage. Cela t'évitera de commencer une chaîne par un \n par la suite et cela t'évitera aussi de forcer l'affichage par un fflush(stdout).

Pour ta question 3, tu as oublié dans ta fonction affiche de mettre la position dans le tableau.

Tu as posté ton code, mais tu nous as toujours pas dit ce qui t'empêche de faire la suite. Tu fais un scanf pour saisir l'année par l'utilisateur et tu fais une comparaison sur dvd.annee (ou dvd->annee suivant le type) pour savoir quel dvd afficher.
0
alberttoo Messages postés 3 Date d'inscription dimanche 10 juin 2012 Statut Membre Dernière intervention 10 juin 2012
10 juin 2012 à 17:54
merci pour votre réponse, mais je n'arrive toujours pas a faire la 3éme question c-a-d faire la fonctio avec les condition d'afficher ceux d'une catégorie donnée en plus leur position dans le tableau
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
10 juin 2012 à 18:29
mais je n'arrive toujours pas a faire la 3éme question c-a-d faire la fonctio avec les condition d'afficher
Comme je te dis depuis le début : dis-nous ce qui te bloque... Tu dois bien être capable de dire où tu bloques.

Voilà le squelette :
void affichage(const dvd d, const int annee) {
   int i;
   for (i=0; i<...; ...) {
       if (... > ...) {
            printf("...", ...);
       }
   }
}

int main(void) {
   int annee;
   dvd d;
   printf("choix de l'année\n");
   scanf("%d", ...);
   affichage(d, ...);
   return 0;
}

De plus, après relecture de ton exo, ta réponse 3 est archifausse.
Ecrivez une fonction qui prend en parametre un tableau de dvd et affiche à l'écran tous ceux d'une categorie donnée, avec leur position dans le tableau
Non seulement, tu donnes pas la position dans le tableau, mais tu n'affiches pas ceux d'une catégorie donnée.
representer une base de données de dvd
Tu as fait le dvd, mais tu n'as pas la base de données. Faut que tu fasses un tableau de dvd ou mieux une liste de dvd. Cela dépend de ce que tu as vu en cours...
0