IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

problème d'affichage avec les structures


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 12
    Points
    12
    Par défaut problème d'affichage avec les structures
    Slt tous le monde j'ai un souci avec l'affichage de mes structures. je dois faire la gestion d'une pizzeria.j'ai cree les structure et quelques procedures pour teste, je compile tous est ok mais c'est l'affiche des enregistrements qui me pose probleme.
    pour afficher l'enregistrement pizza il y a pas de probleme mais l'affichage des enregistrements ingredient qui me pose probleme rien ne s'affiche.
    et au passage je voudrais savoir comment on initialise des structure avec structure imbriqué.
    merci de votre d'avance!
    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <windows.h>
     
    struct ingredient
     {
     
           char nom_ing[20];
           int qtt_ing;
           };
     
    struct tp_pizza
    {
           int num_tp_pizza;
           char nom_tp_pizza[20];
           };
     
    struct pizza
    {
     
           char nom_pizza[20];
           struct ingredient ing_pizza[10];
           struct tp_pizza typ_pizza;
    }pizza1;
     
    struct facture
    {
           int num_fact;
           struct pizza n_pizza;
    };
     
    void saisirpizza(char newpizza[]/*,int indice,char newpizza[]*/, int ingid)
    {
         char in;
         int rep,i,f;
         rep=1;
         f=0;
         printf("Creation d'un pizza\n");
         printf("Quel est le nom de votre pizza??\n");
         scanf("%s",&pizza1.nom_pizza);
         printf("Nom pizza %s",pizza1.nom_pizza);
         printf("\nCombien d'ingrédient veux-u entre?(6 max)");
         scanf("%d",&rep);
         while( f<rep)
         {
                printf("\nVotre ingredient sera ??\n");
                scanf("%s",&pizza1.ing_pizza[ingid].nom_ing);
                ingid++;
                f++;
     
         }
     
     }
     
    void affpizzas(struct pizza tabpizza[],int indice,char nompizza[20],int ingid)
    {
         int i,j,g;
     
     
             printf("Nom pizza %s\nComposition : ", pizza1.nom_pizza);
             for (g=1;g<ingid;g++)
             {
                 printf("%s ",pizza1.ing_pizza[g].nom_ing);
             }
             printf("\n");
     
    }
     
    void affpizza(struct pizza tabpizza[],int indice,char nompizza[20])
    {
         int i,j,ingid;
     
         for (i=1;i<indice;i++)
         {
             if (tabpizza[i].nom_pizza == nompizza)
             {
                   affpizzas( tabpizza, indice, nompizza, ingid);
             }
         }
     }
     
     
    void ajoutpizza(struct pizza tabpizza[],int indice,char newpizza[], int ingid)
    {
         int i;
         saisirpizza(newpizza,ingid);
         // tabpizza[indice] = newpizza[i];
          indice=indice+1;
    }
     main()
    {
     
         int indic=0,ingi=0;
         char newpizz[20],nompizza[20];
         pizza tabpiz[30];
         printf("bienvenue dans la pizzeria RICO");
         ajoutpizza( tabpiz, indic, newpizz, ingi);
         affpizzas( tabpiz, indic, nompizza, ingi);
         system("pause");
    }

  2. #2
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Salut,

    Ton code est tout plein d'erreurs comment est-ce que t'es arrivé à l'exécuter
    Bon voici quelques remarques vite fais, mais il te faudra revoir plus en détail ton code pour régler le problème .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    struct pizza
    { 
         char nom_pizza[20];
         struct ingredient ing_pizza[10];
         struct tp_pizza typ_pizza;
    }pizza1;
    pizza1 est déclarée en Globale ce qui n'est pas de bon usage !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     scanf("%s",&pizza1.nom_pizza);
     scanf("%s",&pizza1.ing_pizza[ingid].nom_ing);
    le nom des tableaux représente leur adresse donc nul besoin du &

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /* FAUX */
    pizza tabpiz[30];
    /* CORRECT */
    struct pizza tabpiz[30];
    le type ici n'est pas pizza !! mais struct pizza

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void ajoutpizza(struct pizza tabpizza[],int indice,char newpizza[], int ingid)
    {
        int i;
        saisirpizza(newpizza,ingid);
        tabpizza[indice] = newpizza[i];
        indice=indice+1;
    }
    euhhhh....J'avoue ne pas comprendre ce que tu veux faire, l'affectation de newpizza n'a aucun sens ce sont deux objets de type complètement différents d'autant plus que le i n'est pas initialisé même la newpizza !! qui n'est pas modifiée par ta fonction saisirpizza donc je ne vois pas pourquoi elle est passée en paramètre ...

    Concernant l'affichage des ingrédients :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void affpizzas(struct pizza tabpizza[],int indice,char nompizza[20],int ingid)
    {
        int g;
     
        printf("Nom pizza %s\nComposition : ", pizza1.nom_pizza);
        for (g=1;g<ingid;g++)
        {
            printf("%s ",pizza1.ing_pizza[g].nom_ing);
        }
        printf("\n");
    }
    Les indices des tableaux commence par 0, tu écriras plutôt g=0 dans ta boucle for ...sinon ingid est égale à 0, donc normale que rien ne s'affiche elle est passée en paramètre à plusieurs de tes fonctions mais toujours en valeur elle reste donc toujours égale à 0, si tu veux que tes fonctions puissent la modifier faudra qu'elle soit passer par adresse ( il existe de nombreux tuto traitant des pointeurs notamment sur ce site )

    Mis à part ceci la forme exacte de main est : int main( void ) dans ton cas

    @++
    To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --

Discussions similaires

  1. problème de syntaxe avec les structures .top et .left
    Par frisou65 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 01/09/2008, 15h10
  2. Problème d'affichage avec les float
    Par Poseidon62 dans le forum Ada
    Réponses: 9
    Dernier message: 04/05/2007, 14h03
  3. Problème d'affichage avec les lumières
    Par Glosialabolas dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/11/2006, 18h46
  4. [PHP-JS] Problème d'affichage avec les ', ê, é,è
    Par cyberdevelopment dans le forum Langage
    Réponses: 4
    Dernier message: 28/07/2006, 13h49
  5. Réponses: 6
    Dernier message: 19/05/2005, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo