Urgent : mon Script liste chainée marche pas
Résolu
narama87
Messages postés
94
Date d'inscription
Statut
Membre
Dernière intervention
-
narama87 Messages postés 94 Date d'inscription Statut Membre Dernière intervention -
narama87 Messages postés 94 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
SVP , j'ai besoin de votre aide , je travaille sur les listes chainées , qui bloque et ne passe pas ,
voici mon code source :
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct p{
int ref;
char nom[30];
float p_vente,p_achat;
struct p* next;
};
typedef struct p * produit;
produit ajouter_enfin(produit list);
void afficher_tout(produit list);
main()
{
produit la_liste,la_liste_ret;
la_liste_ret=ajouter_enfin(la_liste);
afficher_tout(la_liste_ret);
}
//Fonction Ajouter_enqueue
produit ajouter_enfin(produit list){
/* allocation du noeud */
produit p_new = (produit)malloc (sizeof (produit));
/* si tout s'est bien passe : */
if (p_new != NULL)
{
/* mise a jour des champs : */
/* donnees */
printf("donner le ref de produit");
scanf("%d",&p_new->ref);
printf("donner le nom du produit");
scanf("%s",&p_new->nom);
printf("donner la prix d'achat ");
scanf("%f",&p_new->p_achat);
printf("donner la prix de vente");
scanf("%f",&p_new->p_vente);
/* chainage par defaut */
p_new->next = NULL;
/* chainage */
if (list == NULL)
{
/* c'est le premier : */
list = p_new;
}
else
{
/* on cherche le dernier noeud */
produit p = list;
while (p->next != NULL)
{
/* pointer sur le suivant */
p = p->next;
}
/* modification du chainage */
p->next = p_new;
}
}
return list;
}
//Procédure affichage
void afficher_tout(produit list){
if(list==NULL){
printf("aucune liste a afficher ajoutez une\n");
}
else
{
printf("la ref de produit est:%d\n",list->ref);
printf("le nom de produit est:%s\n",list->nom);
printf("le prix d'achat de produit est:%f\n",list->p_achat);
printf("le prix de vente de produit est:%f\n",list->p_vente);
}
}
De l'aide svp !!!!
SVP , j'ai besoin de votre aide , je travaille sur les listes chainées , qui bloque et ne passe pas ,
voici mon code source :
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct p{
int ref;
char nom[30];
float p_vente,p_achat;
struct p* next;
};
typedef struct p * produit;
produit ajouter_enfin(produit list);
void afficher_tout(produit list);
main()
{
produit la_liste,la_liste_ret;
la_liste_ret=ajouter_enfin(la_liste);
afficher_tout(la_liste_ret);
}
//Fonction Ajouter_enqueue
produit ajouter_enfin(produit list){
/* allocation du noeud */
produit p_new = (produit)malloc (sizeof (produit));
/* si tout s'est bien passe : */
if (p_new != NULL)
{
/* mise a jour des champs : */
/* donnees */
printf("donner le ref de produit");
scanf("%d",&p_new->ref);
printf("donner le nom du produit");
scanf("%s",&p_new->nom);
printf("donner la prix d'achat ");
scanf("%f",&p_new->p_achat);
printf("donner la prix de vente");
scanf("%f",&p_new->p_vente);
/* chainage par defaut */
p_new->next = NULL;
/* chainage */
if (list == NULL)
{
/* c'est le premier : */
list = p_new;
}
else
{
/* on cherche le dernier noeud */
produit p = list;
while (p->next != NULL)
{
/* pointer sur le suivant */
p = p->next;
}
/* modification du chainage */
p->next = p_new;
}
}
return list;
}
//Procédure affichage
void afficher_tout(produit list){
if(list==NULL){
printf("aucune liste a afficher ajoutez une\n");
}
else
{
printf("la ref de produit est:%d\n",list->ref);
printf("le nom de produit est:%s\n",list->nom);
printf("le prix d'achat de produit est:%f\n",list->p_achat);
printf("le prix de vente de produit est:%f\n",list->p_vente);
}
}
De l'aide svp !!!!
4 réponses
qui bloque et ne passe pas
OUA !! je suis impressionné, quelle précision dans la description du problème.
OUA !! je suis impressionné, quelle précision dans la description du problème.
en fait c'est ce qui se passe , aucune erreur ne s'affiche , mais lorsque j'essai de bedogguer , ça bloque au niveau de "while (p->next != NULL) " , mais ne m'affiche aucune indication .
une idée ?
une idée ?