SquiiiD be cool ! | Bonjour, jai manqué 2 cours de C car j'etais malade ( sisi c vrai ) Le prog c que je suis un peu largué, voici l'ennoncé suivante, + la reponse, mais il y a qques truc que je ne parviens pas a comprendre... est ce que qqun pourrais m'eclairer??? j'ai ajouter un commentaire a coté des lignes qui m'echapent . Merci d'avance pour vos reponse ....
Code :
- /*ecrire un programme qui lit une série de nombres(le dernier étant 0),
- les relie logiquement en mémoire et affiche cette liste.*/
- #include <stdio.h>
- #include <conio.h>
- #include <malloc.h>
- #include <stdlib.h>
- void main()
- {
- int nbr;
- struct s{int nb;struct s *suiv;}*deb,*crt; // pourquoi declarer 2 pointeur?
- deb=(struct s*)malloc(sizeof(struct s)); //je capte pas tout a cette ligne non plus
- crt=deb;
- printf("\nEntrer un nombre (0 pour terminer):" );
- scanf("%d",&nbr);
- crt->nb=nbr; //que fait exactement ceci?
- crt=deb;
- while(nbr!=0)
- {
- crt->suiv=(struct s*)malloc(sizeof(struct s)); // ?????????
- crt=crt->suiv;
- crt->nb=nbr ;
- printf("\nEntrer un nombre (0 pour terminer): " );
- scanf("%d",&nbr);
- }
- crt->suiv=NULL;
- crt=deb;
- int i=0 ;
- while(crt!=NULL)
- {
- if(i==4)
- {
- //free(crt);
- crt=crt->suiv;
- i++;
- }
- crt=crt->suiv;
- printf("\nLe nombre est n° %d : %d",++i ,crt->nb);
-
- }
- getch();
- }
|
|