0% ont trouvé ce document utile (0 vote)
46 vues3 pages

Prob

Le document présente un programme en C qui gère des machines à l'aide d'une structure. Il permet de saisir des informations sur les machines, de trouver celle avec le meilleur rendement, de supprimer les machines en panne, et de trier les machines par rendement. Le programme utilise des fonctions pour effectuer ces opérations et affiche les résultats à chaque étape.

Transféré par

bensalemm666
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
46 vues3 pages

Prob

Le document présente un programme en C qui gère des machines à l'aide d'une structure. Il permet de saisir des informations sur les machines, de trouver celle avec le meilleur rendement, de supprimer les machines en panne, et de trier les machines par rendement. Le programme utilise des fonctions pour effectuer ces opérations et affiche les résultats à chaque étape.

Transféré par

bensalemm666
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

#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 ;
}

Vous aimerez peut-être aussi