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 :

Liste chainée problème


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mai 2012
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 12
    Par défaut Liste chainée problème
    bonjour,j'essaie de faire le tri d'une liste chainé dans l'ordre décroissante voici mon essai



    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
     #include<stdio.h>
    #include<stdlib.h>
     
    typedef struct cellule
    {
    	int val;
    	struct cellule* next;
    }cellule; 
     
    void main()
     
     
    {
    	cellule* maliste;
     
        cellule*  nouvelem;
    int k; 
     
     
     
     
    nouvelem=(cellule*)malloc(sizeof(cellule));
     
    	maliste=(cellule*)malloc(sizeof(cellule));
     
    printf("saisir la premiere valeur de la liste");
    scanf("%d",&maliste->val);
    maliste->next=NULL;
    printf("si tuvas ajouter des nouveaux cellule saisir 1 sinon saisir 0");
    scanf("%d",&k);
    	 while(k==1)
    	 {
    	 cellule* nouvelem=(cellule*)malloc(sizeof(cellule));
    	 printf("saisir la valeur de nouvelle cellule\n");
    	 scanf("%d",&nouvelem->val);
    	 nouvelem->next=maliste;
    	 maliste=nouvelem;
    printf("si tuvas ajouter des nouveaux cellule saisir 1 sinon saisir 0\n");
    scanf("%d",&k);
    }
     
    cellule* aux1=maliste ;
      cellule* aux=maliste;
      cellule*p=maliste;
      int max;
    while(p!=NULL)
    { 
    	max=p->val;
    	aux=p;
     
    	while(aux!=NULL)
    	{ 
    		if(max<(aux->val))
    		{	printf("A\n");
    			max=aux->val;
    			aux1=aux;
    		}
    		aux=aux->next;
    	}
    	aux1->val=p->val;
    	p->val=max;
    	p=p->next;
     
    }
    while(maliste!=NULL)
    	  {
    		  printf("valeur=%d\n",maliste->val);
    		  maliste=maliste->next;
    	  }
    }
    c'est executable mais tjrs d'un maniere fausse .
    merci d'avance et désolé pace que j'ai pas arrivé à savoir comment mettre le code d'une maniere conforme.

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Utilise les balise CODE pour plus de lisibilité.
    Essaye aussi d'indenter ton 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
    #include<stdio.h>
    #include<stdlib.h>
    
    typedef struct Cellule
    {
         int val;
         struct Cellule* next;
    }cellule;
    
    int main(void)
    {
         cellule* maliste;
         cellule* nouvelem;
         int k;
         nouvelem=(cellule*)malloc(sizeof(cellule));
         maliste=(cellule*)malloc(sizeof(cellule));
    
         printf("saisir la premiere valeur de la liste");//créer une fonction de saisie
         scanf("%d",&maliste->val);
         maliste->next=NULL;
         printf("si tuvas ajouter des nouveaux cellule saisir 1 sinon saisir 0");
         scanf("%d",&k);
         while(k == 1)
         {
               cellule* nouvelem=(cellule*)malloc(sizeof(cellule));
               printf("saisir la valeur de nouvelle cellule\n");
               scanf("%d",&nouvelem->val);
               nouvelem->next=maliste;
               maliste=nouvelem;
               printf("si tuvas ajouter des nouveaux cellule saisir 1 sinon saisir 0\n");
               scanf("%d",&k);
          }
          cellule* aux1;
          cellule* aux;
          cellule*p=maliste;
          int max;
          while(p!=NULL)//créer une fonction de trie
          {
               aux1 = p;
               max=p->val;
               aux=p;
               while(aux!=NULL)
               {
                      if(max<(aux->val))
                     {     printf("A\n");
                            max=aux->val;
                            aux1=aux;
                     }
                     aux=aux->next;
               }
               aux1->val=p->val;
               p->val=max;
               p=p->next;
        }
        while(maliste!=NULL)  //créer une fonction d'affichage
        {
             printf("valeur=%d\n",maliste->val);
             maliste=maliste->next;
         }
          //libérer les ressources allouées par malloc
          return 0;
    }
    Ton code est illisible, utilise des fonctions.

  3. #3
    Membre actif
    Inscrit en
    Mai 2012
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 12
    Par défaut
    merci beaucoup je ferai attention la prochaine fois

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/12/2012, 19h15
  2. Liste chainée - problème de return
    Par ghorg dans le forum Débuter
    Réponses: 10
    Dernier message: 06/12/2009, 19h54
  3. Vider liste chainée, problème
    Par hunter99 dans le forum C
    Réponses: 39
    Dernier message: 28/03/2007, 21h08
  4. Réponses: 28
    Dernier message: 24/05/2006, 18h20
  5. Liste déroulante chainée : problème avec value
    Par jpascal dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/08/2005, 21h06

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