Vous êtes sur la page 1sur 5

Correction

TD1
Exercice 8
#define N 51

typedef struct{

int mat;

char nom[N];

float moy;

} etudiant;

void affiche(etudiant E){

printf("le nom : %s\n",E.nom);

printf("matricule : %d\n",E.mat);

printf("la moyenne : %f\n",E.moy);

void lire(etudiant *E){

printf("donner le nom: ");

scanf("%s",E->nom);

printf("donner la moyenne : ");

scanf("%f",&E->moy);

printf("donner matricule : ");

scanf("%d",&E->mat);

1
void echanger(etudiant T[],int i,int j){

etudiant temp;

temp=T[i];

T[i]=T[j];

T[j]=temp;

void trier( etudiant T[N],int n){

int min,i,j;

for(i=0;i<n-1;i++){

min=i;

for(j=i;j<n;j++)

if(strcmp(T[min].nom,T[j].nom)>0)min=j;

echanger(T,min,i);

main(){

int i,n;

etudiant T[N];

printf("donner le nombre d'etudiants : ");

scanf("%d",&n);

for(i=0;i<n;i++)

lire(&T[i]);

trier(T,n);

for(i=0;i<n;i++)
2
affiche(T[i]);

TD2

Exercice 1
element max(liste l){

element k=l->info;

place p;

for(p=l;p;p=p->next)if (k < p->info)k=p->info;

return k;

Exercice 2

#define N 100

main(){

element t[N]={2,2,3,4,6,5,3,6,7,2,11,12,15,17};

int n=13;

int i,j,k;

liste l;

l=liste_vide();

3
for(i=0;i<n;i++){l=insererl(l,i,t[i]);}

printf("max %d ",max(l));

liste l1=liste_vide(),l2=liste_vide();

place p=l;

int val,i=0,j=0;

puts("donner val");scanf("%d",&val);

while(p){

if(p->info>=val){l1=insererl(l1,j,p->info);j++;

}else{

l2=insererl(l2,i,p->info);i++;

p=p->next;

puts("apres eclatement");

afficher(l1); puts(""); afficher(l2);

Exercice4
d- liste concatener (liste l1, liste l2){

if(est_videl(l1))return l2;

place p=l1;

4
while(p->next!=NULL)p=p->next;

p->next=l2;

return l1;

b- liste recherche(liste l, element x){

place p=l;

while(p)

{ if (p->info==x)return p;

p=p->next;

return NULL;

Vous aimerez peut-être aussi