Pointeur en c
Haladou Issa Ali
Messages postés
30
Statut
Membre
-
pointeur avc liste chainnee -
pointeur avc liste chainnee -
Bonjour, se t-ce quelqu'un peut m'aider à créer un programme pointeur en c permettant de saisir la liste des étudiants d'une classe dont l'effectif n'est pas connu à priori. merci!
1 réponse
-
-
D'accord c'est ce que j'ai utilisé avec les pointeurs mais sa marche pas tres bien car on veut faire en réalite une saisie ttriée sélon le numéro de matricule de l'etudiant
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedef struct Classe
{ int note, mat;
char nom[255];
struct Classe *SVT;
}Etudiant;
Etudiant *teteliste, *ptr;
/*3.Ecrire un programme qui permet de saisir la liste des
etudiants de façon triée par ordre croissant des matricules */
void saisie_trie()
{ Etudiant *ptrC, *ptrP;
int n;
int choix = 0;
teteliste = ptr;
while(choix ==0)
{ ptr =(Etudiant *)malloc(sizeof(Etudiant));
printf("\nEntrer le nom de l'etudiant:\n");
scanf("\n%s", ptr->nom);
printf("\n Entrer le matricule de l'etudiant:\n");
scanf("\n%d", &ptr->mat);
printf("\nEntrer la note de l'etudiant:\n" );
scanf("\n%d", &ptr->note);
if(teteliste == NULL)
/* Cas de la saisie du premier element*/
{teteliste =ptr;
affichage();
}
else
{ while(choix ==0)
{ ptr =(Etudiant *)malloc(sizeof(Etudiant));
printf("\nEntrer le nom de l'etudiant1:\n");
scanf("\n%s", ptr->nom);
printf("\n Entrer le matricule de l'etudiant1:\n");
scanf("\n%d", &ptr->mat);
printf("\nEntrer la note de l'etudiant1:\n" );
scanf("\n%d", &ptr->note);
affichage();
if((teteliste->mat) > ptr->mat)
/*Cas d'une insertion en tête de liste*/
{ ptr->SVT = teteliste;
teteliste =ptr;
}
else
/*cas d'une insertion dans le corps de la liste*/
{ ptrC = teteliste;
ptrP = teteliste;
}
}
}
while((ptrC != NULL) && (ptrC->mat < ptr->mat))
}
fin du programme; au faite ça marche bien car sa affiche seulement le dernier etudiant saisi, merci!!!
{ ptrP = ptrC;
ptrC = ptrC->SVT;
}
ptrP->SVT =ptr;
ptr->SVT =ptrC;
}
-