Svp svp svp corrigez moi cet exercice
rourou1211
-
feadin91 Messages postés 282 Statut Membre -
feadin91 Messages postés 282 Statut Membre -
bonjours, Slt
j'espere bien que vs me corrigé cette exercice en language c :
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
typedef struct
{int n_ap;
char nom[20],prenom[20];
char adr[20];
char ville[20];
int c_p;
}abonne;
abonne *reservation(int*n)
{abonne *p;
do
{printf("donner le n°d'abonne");
scanf("%d",n);
}while (n<0);
p=(abonne*)malloc(*n*sizeof(abonne));
if (p==NULL) exit(-1);
return p;}
int exist_n(abonne *t,int n,int i)
{int j,c=0;
for(j=0;j<n;j++)
if ((t+j)->n_ap==i)
c=1;
return c;}
void saisie_info(abonne *t,int n)
{int i;
for(i=0;i<n;i++)
{do
{printf("donner numéro d'appel unique");
scanf("%d",&(t+i)->n_ap);
}while(exist_n(t,n,i)!=0);
printf("nom");gets((t+i)->nom);
printf("prenom");gets((t+i)->prenom);
printf("adresse");gets((t+i)->adr);
printf("ville");gets((t+i)->ville);
printf("code postal");
scanf("%d",&(t+i)->c_p);
}}
void rech_ab(abonne *t,int n,int a)
{int i=0;
while (((t+i)->n_ap!=a)&&(i<n))
i++;
if(i<n)
{printf("l'abonne recherche est %s %s",(t+i)->prenom,(t+i)->nom);}
else
printf("non trouve");}
void permute(abonne *x, abonne *y)
{abonne z;
z=*x;
*x=*y;
*y=z;}
abonne *max(abonne *t, int n)
{int i;
abonne *m;
m=t;
for (i=1;i<n;i++)
if ((t+i)->n_ap > m->n_ap)
m=t+i;
return(m);}
void tri (abonne *t, int n)
{int i;
for(i=0;i<n;i++)
permute(t+i,max((t+i),n-i));}
void affiche (abonne *t, int n)
{int i;
for(i=0;i<n;i++)
{printf ("voilà les informations d'abonne %d",i);
printf ("%d",(t+i)->n_ap);
printf ((t+i)->nom);
printf ((t+i)->prenom);
printf ((t+i)->adr);
printf ((t+i)->ville);
printf ("%d",(t+i)->c_p);
}}
void abon_ville(abonne *t, int n, char v[20])
{int i;
for(i=0;i<n;i++)
if ( strcmp((t+i)->ville,v)==0)
{printf((t+i)->nom,(t+i)->prenom);}}
int exist_v(abonne *t, int x, char *tvv)
{int j,i,c=0;
for(i=0;i<j;i++)
if(strcmp((tvv+i),(t+x)->ville)==0)
c=1;
return c;}
void *remplissage (abonne *t, int n, int *m)
{int j,i;
char *tvv;
tvv=(char*)malloc(n*sizeof(char));
if (tvv==NULL) exit(-1);
j=0;
for(i=0;i<n;i++)
if ((exist_v((t+i),j,tvv)==0))
{*(tvv+j)=(char*)malloc(strlen(t+i)->ville)+1*sizeof(char);
strcpy((tvv+j),t+i->ville);
j++;}
tv=(char*)malloc(j+sizeof(char));
for(c=0;c<=j;c++)
*(tv+c)=*(tvv+c);
*m=j;
return tv;}
void n_ab_v(abonne *t, int n, char *tv, int m)
{int i,j,c,m;tv=remplissage(&t,n,&m)
for(j=0;j<=m;j++)
{c=0;
for(i=0;i<n;i++)
if(strcmp(t+i_>ville,*(t+i)==0))
c++;
printf("nombre d'abonne de %s est %d",*(t+i),c);}
}
void liste_v(char *tv, int m)
{int i;
for(i=0;i<=m;i++)
puts(*(tv+i));
}
void main()
{int n,m;
abonne *t;
char *tv;
printf("1 pour reservation");
printf("2 pour saisir les informations");
printf("3 pour chercher un abonne");
printf("4 pour trier le tableau d'abonnes");
printf("5 pour afficher les abonnes");
printf("6 pour afficher les abonnes d'une ville donnee");
printf("7 pour savoir le n° d'abonnes pour chaque ville");
printf("8 pour afficher la liste des villes");
printf("9 pour quitter");
scanf ("%d",&choix);
switch(choix)
{case 1:{t=reservation(&n);goto a;}
case 2:{saisir_info(&t,n);goto b;}
case 3:{printf("donner un numero à chercher");
scanf ("%d",&a);
rech_ab(&t,n a);
goto b;}
case 4:{tri(&t,n);
goto b;}
case 5:{affiche(&t,n);
goto b;}
case 6:{printf("donner la ville à chercher");
gets(vch);
rech_v(&t,n,vch);
goto a;}
case 7:{n_ab_v(&t,n,&tv,m);
goto b;}
case 8:{liste_v(&tv,m);
goto b;}
case 9: printf("fin du programme");
exit(-1);
default{printf("n°incorrect");
goto b;}}
getch();}
merci d'avance et dsl
j'espere bien que vs me corrigé cette exercice en language c :
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
typedef struct
{int n_ap;
char nom[20],prenom[20];
char adr[20];
char ville[20];
int c_p;
}abonne;
abonne *reservation(int*n)
{abonne *p;
do
{printf("donner le n°d'abonne");
scanf("%d",n);
}while (n<0);
p=(abonne*)malloc(*n*sizeof(abonne));
if (p==NULL) exit(-1);
return p;}
int exist_n(abonne *t,int n,int i)
{int j,c=0;
for(j=0;j<n;j++)
if ((t+j)->n_ap==i)
c=1;
return c;}
void saisie_info(abonne *t,int n)
{int i;
for(i=0;i<n;i++)
{do
{printf("donner numéro d'appel unique");
scanf("%d",&(t+i)->n_ap);
}while(exist_n(t,n,i)!=0);
printf("nom");gets((t+i)->nom);
printf("prenom");gets((t+i)->prenom);
printf("adresse");gets((t+i)->adr);
printf("ville");gets((t+i)->ville);
printf("code postal");
scanf("%d",&(t+i)->c_p);
}}
void rech_ab(abonne *t,int n,int a)
{int i=0;
while (((t+i)->n_ap!=a)&&(i<n))
i++;
if(i<n)
{printf("l'abonne recherche est %s %s",(t+i)->prenom,(t+i)->nom);}
else
printf("non trouve");}
void permute(abonne *x, abonne *y)
{abonne z;
z=*x;
*x=*y;
*y=z;}
abonne *max(abonne *t, int n)
{int i;
abonne *m;
m=t;
for (i=1;i<n;i++)
if ((t+i)->n_ap > m->n_ap)
m=t+i;
return(m);}
void tri (abonne *t, int n)
{int i;
for(i=0;i<n;i++)
permute(t+i,max((t+i),n-i));}
void affiche (abonne *t, int n)
{int i;
for(i=0;i<n;i++)
{printf ("voilà les informations d'abonne %d",i);
printf ("%d",(t+i)->n_ap);
printf ((t+i)->nom);
printf ((t+i)->prenom);
printf ((t+i)->adr);
printf ((t+i)->ville);
printf ("%d",(t+i)->c_p);
}}
void abon_ville(abonne *t, int n, char v[20])
{int i;
for(i=0;i<n;i++)
if ( strcmp((t+i)->ville,v)==0)
{printf((t+i)->nom,(t+i)->prenom);}}
int exist_v(abonne *t, int x, char *tvv)
{int j,i,c=0;
for(i=0;i<j;i++)
if(strcmp((tvv+i),(t+x)->ville)==0)
c=1;
return c;}
void *remplissage (abonne *t, int n, int *m)
{int j,i;
char *tvv;
tvv=(char*)malloc(n*sizeof(char));
if (tvv==NULL) exit(-1);
j=0;
for(i=0;i<n;i++)
if ((exist_v((t+i),j,tvv)==0))
{*(tvv+j)=(char*)malloc(strlen(t+i)->ville)+1*sizeof(char);
strcpy((tvv+j),t+i->ville);
j++;}
tv=(char*)malloc(j+sizeof(char));
for(c=0;c<=j;c++)
*(tv+c)=*(tvv+c);
*m=j;
return tv;}
void n_ab_v(abonne *t, int n, char *tv, int m)
{int i,j,c,m;tv=remplissage(&t,n,&m)
for(j=0;j<=m;j++)
{c=0;
for(i=0;i<n;i++)
if(strcmp(t+i_>ville,*(t+i)==0))
c++;
printf("nombre d'abonne de %s est %d",*(t+i),c);}
}
void liste_v(char *tv, int m)
{int i;
for(i=0;i<=m;i++)
puts(*(tv+i));
}
void main()
{int n,m;
abonne *t;
char *tv;
printf("1 pour reservation");
printf("2 pour saisir les informations");
printf("3 pour chercher un abonne");
printf("4 pour trier le tableau d'abonnes");
printf("5 pour afficher les abonnes");
printf("6 pour afficher les abonnes d'une ville donnee");
printf("7 pour savoir le n° d'abonnes pour chaque ville");
printf("8 pour afficher la liste des villes");
printf("9 pour quitter");
scanf ("%d",&choix);
switch(choix)
{case 1:{t=reservation(&n);goto a;}
case 2:{saisir_info(&t,n);goto b;}
case 3:{printf("donner un numero à chercher");
scanf ("%d",&a);
rech_ab(&t,n a);
goto b;}
case 4:{tri(&t,n);
goto b;}
case 5:{affiche(&t,n);
goto b;}
case 6:{printf("donner la ville à chercher");
gets(vch);
rech_v(&t,n,vch);
goto a;}
case 7:{n_ab_v(&t,n,&tv,m);
goto b;}
case 8:{liste_v(&tv,m);
goto b;}
case 9: printf("fin du programme");
exit(-1);
default{printf("n°incorrect");
goto b;}}
getch();}
merci d'avance et dsl
A voir également:
- Svp svp svp corrigez moi cet exercice
- Créer exercice à relier word ✓ - Forum Word
- Exercice opérateur de saisie ✓ - Forum Études / Formation High-Tech
- Trouvez l'erreur dans la structure du document et corrigez-la. - Forum Word
- Fleur d'encre 5eme corrigé exercice ✓ - Forum PDF
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
3 réponses
Il en a qui se font pas chier à ce que je vois !!!!
Tu veux aussi que l'on suive tes cours à ta place ?
Si tu as testé ton programme et qu'il y a des erreurs, ebvoie-bous ce que t'indiquent les erreurs, on pourra peut être t'aider à ce moment là !
Tu veux aussi que l'on suive tes cours à ta place ?
Si tu as testé ton programme et qu'il y a des erreurs, ebvoie-bous ce que t'indiquent les erreurs, on pourra peut être t'aider à ce moment là !