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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Janvier 2011
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 164
    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 émérite
    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
    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.

  3. #3
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    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
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 836
    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 836
    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