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 d'une liste


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    Points : 12
    Points
    12
    Par défaut problème d'affichage d'une liste
    Bonsoir,

    quelqu'un peut m'aider ?
    ma fonction afficher_liste ne marche pas elle ne m'affiche rien malgré qu'elle est juste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void afficher_liste(liste tete)
      { liste p=tete;
        while(p!=NULL)
          { 
            printf("Identifacateur du processus:%d\n",p->id);
            printf("Nom du processus:%s\n",puts(p->nom));
            p=p->svt;
          }
      }
    voici le main:

    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
    void main()
    {   int nb_tache,i,choix;
        char cod[maxcar],n[maxcar],etat,nom;
        int id,priorite,t_arrive,t_execution;
        liste tete,l,p,svt;
     
     
     
         liste creer_noeud(); 
         liste creer_liste();
         void  afficher_liste(liste tete);
         void inserer(liste *l, int id);
         void inserer_queue(liste *l,liste *p);
         void supprimer(liste *l);
         void permuter(liste *p1,liste *p2);
         void trier (liste *l);
         void executer(liste *scheduler,liste *actif);
         void entree_sortie(liste *actif, liste *scheduler);
     
     
     
     
     
        printf("******************************** MENU **************************************\n");
        printf("\n");
     
         printf("Les differentes taches possibles sont:\n");
         printf("\n");
         printf("1- Creation de la file des processus\n");
         printf("2- Affichage de la file des processus\n");
         printf("3- Modification de la file\n");
         printf("4- Execution des processus avec FIF0\n");
         printf("5- Executer des processus avec RR\n");
         printf("6- Quitter\n");
         printf("\n");
     
     
     
        printf("Donner le nombre de taches presentes\n");
        scanf("%d", &nb_tache);
     
        if((nb_tache<=0)||(nb_tache>maxtaches))
            {exit(-1);}
     
         for(i=1;i<nb_tache;i++)
    {
          printf("Veuillez tapper le numero %d pour continuer l'execution \n", i);
     
          scanf("%d", &choix);
     
         if((choix<1)||(choix>7))
    {
                exit(-1);
    }
     
         switch(choix)
    {
         case 1: printf("**************** Creation de la liste des processus ***************\n");
         printf("\n");
     
         creer_liste(); 
             break;
     
     
     
     
             case 2: printf("**************** Affichage de la liste des processus ***************\n");
         printf("\n");
     
         void afficher_liste(liste tete);
             break;
                      default: exit(1);
     
    }
     
    }            
         getchar(); getchar();
    }

    et la console:

    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
    ******************************** MENU ***********
     
    Les differentes taches possibles sont:
     
    1- Creation de la file des processus
    2- Affichage de la file des processus
    3- Modification de la file
    4- Execution des processus avec FIF0
    5- Executer des processus avec RR
    6- Quitter
     
    Donner le nombre de taches presentes
    6
    Veuillez tapper le numero 1 pour continuer l'execution
    1
    **************** Creation de la liste des processus ***************
     
    Donnez le nombre de processus
    1
    ********************* Creation du processus numero1 *****************
     
    Donnez le nom du processus numero1:
    proc1
    Donnez l'identificateur du processus numero1:
    1
    Donnez la priorite du processus numero1:
    6
    Donnez le temps d'arrivee du processus numero1:
    5
    Donnez le temps d'execution du processus numero1:
    4
    La file contient un seul processus
     
    Veuillez tapper le numero 2 pour continuer l'execution
    2
    **************** Affichage de la liste des processus ***************
      ////// ici ça doit m'afficher la liste des processus que j'ai saisie
     
    Veuillez tapper le numero 3 pour continuer l'execution

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    C'est un peu vague pour qu'on puisse t'aider, il nous faudrait un peu plus de code. Ton problème ne se situe pas dans la fonction afficher_liste, mais ailleurs.
    D'ailleurs, la fonction main doit retourner quelque chose, donc c'est 'int main(void)' qu'il faut avoir comme prototype (ou l'autre, mais tu ne te sers pas des argc/v).
    C'est toujours une mauvaise idée de cacher un pointeur dans un typedef...
    Ton indentation est à revoir, ton code est illisible.
    Les prototypes de fonctions sont à déclarer dans un header prévu à cet effet, ou éventuellement en début de fichier.
    Les variables globales sont à éviter, ton code est un gruyère.
    Plus tu pédales moins fort, moins t'avances plus vite.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    est-ce normal que la tête que tu passes à afficher_liste ne soit pas un pointeur ? ou liste définit automatiquement un pointeur ?

    case 2: printf("**************** Affichage de la liste des processus ***************\n");
    printf("\n");

    void afficher_liste(liste tete);
    Il faudrait revoir comment on utilise une fonction, écrire son prototype n'est pas la bonne solution..
    Si tenté que afficher_liste soit correcte, ça ne marchera pas avec cet appel.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lucciana Voir le message
    Bonsoir,

    quelqu'un peut m'aider ?
    ma fonction afficher_liste ne marche pas elle ne m'affiche rien malgré qu'elle est juste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void afficher_liste(liste tete)
      { liste p=tete;
        while(p!=NULL)
          { 
            printf("Identifacateur du processus:%d\n",p->id);
            printf("Nom du processus:%s\n",puts(p->nom));
            p=p->svt;
          }
      }
    Bonjour

    La majorité des remarques les plus importantes ont été données. On ne sait rien de ta liste et/ou de la façon dont tu la remplis.

    Je rajoute ma touche à propos d'un truc que personne n'a remarqué (mais je n'ai aucun mérite, je ne l'ai vu que par hasard tellement ça se fond dans le code): faire un printf(..., puts()) c'est vraiment pas tiptop. Soit tu utilises printf(), soit tu utilises puts() mais pas les 2 à la fois !!!

    Citation Envoyé par lucciana Voir le message
    malgré qu'elle est juste.
    Ne jamais faire ce genre de présomption car preuve en est...

    PS: tu peux remplacer ton while() par un for() plus significatif

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void afficher_liste(liste tete)
    {
        liste p;
        for (p=tete; p!=NULL; p=p->svt)
        { 
            printf(...);
        }
    }
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/05/2008, 16h41
  2. Problème d'affichage avec une liste à puces
    Par Maxence45 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/07/2007, 21h09
  3. Problème d'affichage d'une liste déroulante sous IE
    Par devdebutante dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 09/07/2007, 15h29
  4. [MySQL] problème d'affichage dans une liste
    Par bromlecornu dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/05/2007, 16h08
  5. Problème d'affichage d'une liste déroulante
    Par licorne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 05/09/2006, 13h07

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