0/5 (5 avis)
Vue 4 803 fois - Téléchargée 271 fois
#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <errno.h> struct famille { char nom[20]; char prenom[20]; int years; struct famille *next; }*fam; struct famille *sauv; void insereraudebut(struct famille *p); void insereraumilieu(struct famille *p); void insereralafin(struct famille *p); void supprimer(struct famille*p); void insereraudebut(struct famille *p) { p->next=fam; fam=p; } void insereraumilieu(struct famille *p) { struct famille*suc,*pred; suc=fam; while(suc &&(p->years>suc->years)) { pred=suc; suc=suc->next; } p->next=pred->next; pred->next=p; } void insereralafin(struct famille *p) { if(fam==NULL) fam=p; else { sauv=fam; while(sauv->next!=NULL) sauv=sauv->next; sauv->next=p; } } void main() { struct famille *p; fam=(struct famille *)malloc(sizeof(struct famille)); fam=NULL; sauv=(struct famille *)malloc(sizeof(struct famille)); char n; while(1) { clrscr(); p=(struct famille *)malloc(sizeof(struct famille)); p->next=NULL; printf("\n"); printf("******************MENU GENERAL*********************\n"); printf("<1>voir la liste\n"); printf("<2>entrer un element au debut de liste\n"); printf("<3>entrer un element au milieu de liste\n"); printf("<4>entrer un element a la fin de liste\n"); printf("<5>supprimer un element\n"); printf("<6>quitter\n"); printf("***************************************************\n"); printf("saisir votre choix: "); scanf("%s",&n); switch(n) { case '1': { sauv=(struct famille *)malloc(sizeof(struct famille)); sauv=fam; while(sauv) { printf("nom :%s\n",sauv->nom); printf("prenom:%s\n",sauv->prenom); printf("annee de naissance:%d\n",sauv->years); printf("\n"); sauv=sauv->next; } getch(); break; } case '2': { printf("saisir le nom:"); scanf("%s",p->nom); printf("saisir le prenom:"); scanf("%s",p->prenom); printf("saisir l'annee de naissance:"); scanf("%d",&p->years); insereraudebut(p); break; } case '3': { printf("saisir le nom:"); scanf("%s",p->nom); printf("saisir le prenom:"); scanf("%s",p->prenom); printf("saisir l'annee de naissance:"); scanf("%d",&p->years); insereraumilieu(p); break; } case '4': { printf("saisir le nom:"); scanf("%s",p->nom); printf("saisir le prenom:"); scanf("%s",p->prenom); printf("saisir l'annee de naissance:"); scanf("%d",&p->years); insereralafin(p); break; } case '5': { printf("saisir le nom:"); scanf("%s",p->nom); printf("saisir le prenom:"); scanf("%s",p->prenom); printf("saisir l'annee de naissance:"); scanf("%d",&p->years); supprimer(p); break; } case '6': exit(0); } } free(sauv); free(fam); free(p); } /* void insereraumilieu(struct famille *p) { struct famille *tmp; tmp=(struct famille *)malloc(sizeof(struct famille)); sauv=fam; while(sauv->next!=NULL) { if((tmp->years>p->years)&&(sauv->years<p->years)) { p->next=sauv->next; sauv->next=p; break; } tmp=sauv; sauv=sauv->next; } free(tmp); }*/ void supprimer(struct famille*p) { struct famille*suc,*pred; suc=fam; if(suc->years==p->years) fam=fam->next; //free(fam->next); /*else { while(suc!=NULL) { pred=suc; suc=suc->next; } suc=pred; if(suc->years==p->years) free(suc); }
22 déc. 2008 à 10:22
C très rigolo ces forums, un jour je trouverais un commentaire de mon fils entrain de me dire "un peu de respect père stp" :D :D
21 déc. 2008 à 16:15
1 janv. 2005 à 04:41
9 déc. 2004 à 01:02
-si tu t'adresses au pro de la programmation, assure-toi qu'ils n'ont rien à faire d'1e telle source.
-1 petit conseil, la prochaine fois essai de poser une source plus interessante au lieu de nous faire des copier/coller des exemples du cours de 'listes chainées'.
6 déc. 2004 à 09:28
jette donc un oeil au niveau des templates:
exemple:
http://www.cppfrance.com/code.aspx?ID=18584
Bonne prog
++
Magicalement
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.