#include<stdio.
h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
struct machine {
int code ;
char marque[100];
float achat ;
int rend ;
};
struct machine *saisir (){
struct machine * M;
M=(struct machine *)malloc(sizeof(struct machine));
printf("\n donner le code de machine :");
scanf("%d",&M->code);
printf("\n donner le marque de machine :");
scanf("%s",&M->marque);
printf("\n donner le prix de machine :");
scanf("%f",&M->achat);
printf("\n donner le rend de machine :");
scanf("%d",&M->rend);
return M ;
}
void remplir (struct machine **t,int n){
int i ;
for(i=0;i<n;i++){
t[i]=saisir();
}
}
int mellieur (struct machine **t,int n){
struct machine *M=t[0];
int i ;
for(i=1;i<n;i++){
if(t[i]->rend>M->rend){
M=t[i];
}
}
return M->code;
}
void supprimer (struct machine **t,int * n){
int i ;
int j;
for(i=0;i<*n;i++){
if(t[i]->rend==0){
free(t[i]);
for(j=i;j<*n;j++){
t[j]=t[j+1];
}
(*n)--;
}
}
}
int recherchemax(struct machine **t,int n,int i){
int ind=i;
int j ;
for(j=i+1;j<n;j++){
if(t[ind]->rend>t[j]->rend){
ind=j ;
}
}
return ind;
}
void trier (struct machine **t,int n){
int i;
struct machine * aux ;
for(i=0;i<n;i++){
int mn=recherchemax(t,n,i);
if(t[i]->rend!=t[mn]->rend){
aux=t[i];
t[i]=t[mn];
t[mn]=aux;
}
}
}
struct temps {
int h;
int m;
int s;
};
struct temps Decomposer(struct machine **t,int n,int code){
struct temps T ;
int i ;
for(i=0;i<n;i++){
if(t[i]->code==code){
break ;
}
}
int S=t[i]->rend;
T.h=(int)S/3600;
S=S-3600*T.h;
T.m=(int)S/60;
T.s=S%60;
return T;
}
void afficher(struct machine **t , int n){
printf("les machine sont ");
int i ;
for(i=0;i<n;i++){
printf("\n son code est %d\n",t[i]->code);
printf("\nsa marque est %s\n",t[i]->marque);
printf("\nson prix est %f\n",t[i]->achat);
printf("\nson rend est %d\n",t[i]->rend);
}
}
int main (){
int n ;
do{
printf("donner n :");
scanf("%d",&n);
}while(n<2 || n>100);
struct machine *t[n];
struct temps T ;
remplir(t,n);
afficher(t,n);
T=Decomposer(t,n,mellieur(t,n));
printf("le machine a le mellieur rend est %d\n
",mellieur(t,n));
printf("\nle temp est %d:%d:%d\n",T.h,T.m,T.s);
supprimer(t,&n);
printf("\nmachine apres la suppression de machine en panne
\n");
afficher(t,n);
printf("\n trier en cours ... \n");
trier(t,n);
printf("\n tableau apres le trie \n");
afficher(t,n);
return 0 ;
}