Svp svp svp corrigez moi cet exercice

rourou1211 -  
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

3 réponses

Utilisateur anonyme
 
Tu n'avais pas plus long ? Et tu veux qu'on le fasse à ta place en clair ?
1
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
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à !
1
feadin91 Messages postés 282 Statut Membre 89
 
Lol! Tout à fait d'accord avec toi.
En plus, ça pique les yeux quand c'est pas indenté oO

Bref, j'attends les erreurs aussi.
0
chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 312
 
Oui c'est vrai que la compréhension est quand même plus facile avec l'indentation du code, parce que là, je préfère lire un bouquin en protugais, je pense que je comprendrais mieux :)

Nan je charrie c'est pas sympa, mais c'est vrai qu'un code indenté est quand même plus agréable à lire.
0
feadin91 Messages postés 282 Statut Membre 89
 
Mouarf, rien ne nous empêche de copier le code dans notepad++ ou code::blocks et de choisir "indentation auto".... mais j'ai la flemme perso (et je suis au boulot, je n'ai pas CB ni NP++) :rolleyes:
0