67 lines
1.3 KiB
C
67 lines
1.3 KiB
C
|
|
#include <stdlib.h>
|
||
|
|
#include <stdio.h>
|
||
|
|
#include <time.h>
|
||
|
|
|
||
|
|
struct maillon_s {
|
||
|
|
unsigned short valeur;
|
||
|
|
struct maillon_s* suivant;
|
||
|
|
};
|
||
|
|
typedef struct maillon_s maillon;
|
||
|
|
|
||
|
|
maillon* ajouter_debut(maillon* premier, unsigned short nouveau) {
|
||
|
|
maillon* p = (maillon*) malloc(sizeof(maillon*));
|
||
|
|
if (p) {
|
||
|
|
p->suivant = premier;
|
||
|
|
p->valeur = nouveau;
|
||
|
|
}
|
||
|
|
return p;
|
||
|
|
}
|
||
|
|
|
||
|
|
void creer(maillon** liste, int nombre){
|
||
|
|
int i;
|
||
|
|
srand(time(NULL));
|
||
|
|
*liste=ajouter_debut(*liste, rand()%((999-111)+111));
|
||
|
|
for (i=0;i<nombre-1;i++){
|
||
|
|
*liste=ajouter_debut(*liste, rand()%((999-111)+111));
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
unsigned short grand(maillon* premier){
|
||
|
|
unsigned short val;
|
||
|
|
val=premier->valeur;
|
||
|
|
premier=premier->suivant;
|
||
|
|
for(;premier!=NULL;premier=premier->suivant){
|
||
|
|
if (val<premier->valeur)
|
||
|
|
val=premier->valeur;
|
||
|
|
}
|
||
|
|
return val;
|
||
|
|
}
|
||
|
|
|
||
|
|
void afficher(maillon* premier) {
|
||
|
|
maillon* p;
|
||
|
|
for(p = premier; p != NULL; p = p->suivant)
|
||
|
|
printf("%d ", p->valeur);
|
||
|
|
}
|
||
|
|
|
||
|
|
void vider(maillon* premier){
|
||
|
|
maillon* p;
|
||
|
|
maillon* q;
|
||
|
|
for(p = premier; p != NULL; p = q){
|
||
|
|
q=p->suivant;
|
||
|
|
free(p);
|
||
|
|
}
|
||
|
|
premier=NULL;
|
||
|
|
}
|
||
|
|
|
||
|
|
int main(void){
|
||
|
|
int val=10;
|
||
|
|
unsigned short plus_grand;
|
||
|
|
maillon* liste=NULL;
|
||
|
|
creer(&liste,val);
|
||
|
|
afficher(liste);
|
||
|
|
plus_grand=grand(liste);
|
||
|
|
printf("\n%d \n", plus_grand);
|
||
|
|
vider(liste);
|
||
|
|
return EXIT_SUCCESS;
|
||
|
|
}
|