While en C

While en C - C - Programmation

Marsh Posté le 04-01-2014 à 15:06:21    

Bonjour !
 
Je suis débutant en programmation en C, et je trouve quelques difficultés avec mon premier programme.
Donc après avoir compilé et exécuté mon programme plusieurs fois, je conclue que la partie de mon programme qui présente une anomalie est la suivante:

Code :
  1. q=tete;
  2.           while((*q).numero<(*p).numero && q!=NULL)
  3.           {
  4.                               r=q;
  5.                               q=(*q).next;
  6.           }


 
Donc q,r,et p sont des pointeurs qui pointent sur des types struct facture définie comme suit. (p est un pointeur qui a déja été "remplie" avant dans mon programme). tete est la liste chaînée qui contient "tout".
 

Code :
  1. struct facture
  2. {
  3.        int numero;
  4.        char CIN[15];
  5.        char designation[20];
  6.        date dat;
  7.        float prix;
  8.        struct facture *next;
  9. };

 
 
Si vous voyez que quelque chose ne marche pas, dites le moi svp parce que moi, je pense que c'est bon ^^ Merci  :jap:


Message édité par norman_xx le 04-01-2014 à 16:24:50
Reply

Marsh Posté le 04-01-2014 à 15:06:21   

Reply

Marsh Posté le 04-01-2014 à 22:34:36    

Bonsoir !
 
Quelle est exactement la question ? Car là, le code représente un parcours de liste chaînée, assez classique, à 2 interrogations près :  
 
 * A quoi sert la variable "r" ? A stocker l'élément précédent lorsque l'on sort ?
 * La notation (*q).xxx est lourde, pourquoi ne pas utiliser q->xxx ?
 
Bonne continuation !

Reply

Marsh Posté le 04-01-2014 à 23:32:00    

Il faut au moins inverser les tests (*q).numero<(*p).numero et  q!=NULL car si q est NULL tu as un beau crash

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed