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 :

[Debutant] les pointeurs en C++


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut [Debutant] les pointeurs en C++
    Bonjour,

    dans cet exercice vous simulerez la file d 'attente chez le dentiste
    le patient prend rendez vous par tétéphone,on lui donne un numéro
    et il est libre de se présenter quand il veut .
    quand le patient se présent il doit passer par une salle d' attente .
    il peut trouver la salle vide et dans ce cas il sera
    le prochain à etre reçu par le dontiste .
    si la salle n 'est pas vide, on tiendra compte des numéros:
    les patients avec les plus petits numeros seront reçu les premies.
    la fille d' attente sera représente par
    une liste chainéé contenant les numeros des patients
    ecrire les algorithemes pour simuler les événemeznts suivants :
    - un patient arrive dans la salle d 'attente : lire son numéro
    et l' insérer en bonne place dans la liste .
    - la liste diot à tout moment rester triee en ordre croissant .
    - un patient est recu par le dentiste : éliminer de la liste .


    voici mon code mais il y a des erreurs !

    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
     
    #include<iostream.h>
    #include <conio.h>
    #include<stdio.h>
    #include<stdlib.h>
     
    ///////-algorithme file_d'attente-//////
    struct list
    {
          int num;
          struct list *next;
    };
    typedef list *point;
     
    int main()
    {
        // declaration des vars
        int x;
        point tete,p,ptr,pred;
        char rep;
        ///fin dec de var 
        //program principal 
      printf("entrer votre numéro : ");
      scanf("%d",&x);
      ptr = (point) malloc(sizeof(ptr)); //new(ptr);
      ptr->num=x;
      ptr->next=NULL;
      if (tete==NULL)
      {
                     tete=ptr;
                     }
      else
      {
        p=tete;
        while ((p!=NULL) && (x>p->num))
     {
           pred=p;
           p=p->next;
        }
     if (p==tete)  //insertion au debut
     {
        ptr->next=tete;
        tete=ptr;
     }
        else
     {
       if (p==NULL)  //insertion à la fin
       {
         pred->next=ptr;
       }
          else //insertion au milieu
       {
            ptr->next=p;
            pred->next=ptr;
       }
     } 
      }
      printf("est ce qu'un malade est reçu par le dentiste o/n");
      scanf("%c\n",rep);
      if (rep=='o')
      {
        p=tete;
        tete=tete->next;
       free(p);// dispose(p);
      }
      system("PAUSE");
      return 0;
    }
    aider moi Svp ^-^

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 537
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 537
    Par défaut
    Je crois que tu confond C et C++.

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Quelles erreurs ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    pour du C++, beaucoup trop

    enfin c'est du C donc dans le forum C ils se feront un plaisir de t'aider ( je crois )

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    1- Remarque : En C, list n'est pas défini, c'est struct list qui l'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef struct list *point;
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     point tete,p,ptr,pred;
     ....
      if (tete==NULL)
    tete n'est pas initialisé

    3- Mauvais paramètre du scanf :

  6. #6
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    En plus des remarques de diogene :

    1 - Évites de mélanger le C et le C++, ce sont deux langages bien distinct ...

    Citation Envoyé par Dr walid Voir le message
    En C, les fonctions standard d'entrées/sorties sont définies dans stdio.h. En C++ c'est dans iostream.h et on écrit #include <iostream>, tu peut aussi faire appel aux fonctions d'entrées/sorties standard du C en C++ grâce à cstdio.h. Je te conseil tout de même de compiler en C et d'utiliser les bonnes bibliothèques quand tu fait du C (là c'est plutôt le cas).

    Et attention au titre, ici on fait du C. Le C++ à son propre forum et ton code ressemble plutôt à du C (malgré le iostream) => corriges-le et compiles-le en C ...

    2 -
    Citation Envoyé par Dr walid Voir le message
    Attention à cette habitude : de manière générale, une fonction sans rien entre les parenthèses peut prendre une infinité de paramètres lors de son appel. Il est donc plus rigoureux de mettre void entre parenthèses lorsque la fonction ne prend pas de paramètres (pour main ça ne va pas changer grand chose je te l'accorde mais tu auras quand même les warnings si tu compilo est bien réglé) ...

    3 -
    Citation Envoyé par Dr walid Voir le message
    Pourquoi ne pas utiliser getchar (); qui est portable ?

    4 -
    Citation Envoyé par Dr walid Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ptr = (point) malloc(sizeof(ptr));
    En C il est inutile de caster malloc, mais vu que ton code est "hybride" et que tu compiles en C++ très certainement ...

    Cordialement,
    Idriss.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Salut,

    je pense que ce serait plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ptr = malloc(sizeof(*ptr));
    if(ptr == NULL)
    {
      /* erreur */
    }
    else
    {
     
    }

Discussions similaires

  1. [Debutant] Nouvelle question sur les pointeurs
    Par etiennegaloup dans le forum Débuter
    Réponses: 3
    Dernier message: 11/01/2006, 09h55
  2. [debutant] les commentaires ????
    Par ghohm dans le forum ASP
    Réponses: 3
    Dernier message: 24/03/2004, 10h18
  3. pointeurs, toujours les pointeurs :/
    Par giviz dans le forum C
    Réponses: 16
    Dernier message: 08/10/2003, 15h02
  4. Pb de débutant sur les pointeurs!!!
    Par benji17c dans le forum C
    Réponses: 6
    Dernier message: 30/09/2003, 17h50
  5. [debutant] les processus se cumulent
    Par glurps dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/06/2003, 10h24

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