Je veu qlq ki me corrige se prog le plu to po

Fermé
rourou12 - 27 avril 2009 à 21:53
 rourou1211 - 27 avril 2009 à 22:11
Bonjour, voilà c le prog svp aidez moi
#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();}
A voir également:

4 réponses

zicktraxx Messages postés 5462 Date d'inscription mercredi 3 décembre 2008 Statut Contributeur Dernière intervention 17 septembre 2019 3 278
27 avril 2009 à 21:54
Salut ,

Merci de lire ceci :
- Respect d'autrui
- Conseils de rédaction

@+
4
l informatiquepourtous Messages postés 1064 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 23 avril 2018 80
27 avril 2009 à 21:56
Salut:
Un "s'il vous plait" serais bien et une description de ce que tu veux faire de ce codes ....
SI non personne ne voudras passer du temps pour t'aider ...
2
BeFaX Messages postés 14245 Date d'inscription mercredi 24 décembre 2008 Statut Contributeur Dernière intervention 6 août 2013 3 823
27 avril 2009 à 21:55
C'est abusé... Les Helpers ne sont pas des chiens.
"Je veu qlq ki me corrige se prog le plu to po" et tu poste tout ton code...
Même pas de bonjour, même pas de s'il vous plait, même pas de merci, aucune explications...
je doute que tu es beaucoup de réponses positives.
1
je suis vrmt dsl mille dsl mais c troooooooo urgen merciii bien et dsl encore
0