Probleme en c

Fermé
kimologie Messages postés 5 Date d'inscription samedi 15 mars 2008 Statut Membre Dernière intervention 22 mars 2008 - 20 mars 2008 à 16:56
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 22 mars 2008 à 16:48
Bonjour,
svp aidez moi a corriger ce programme en c
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define n 4


tri_voiture(int n,char* x1,int* y1,float* z1);
char* lec_nv(int n);
int* lec_mat(int n);
float* lec_prix(int n);



void main()

{char *x1;
int *y1,n;
float* z1;
printf("donner le nombre de voiture a ajouter\n");
scanf("%d",&n);



tri_voiture(n,x1,y1,z1);
}
char* lec_nv(int n)
{
int i;
char m[20],*pm[n];
for(i=0;i<n;i++)
{
printf("donner le nom et la modele de la phrase numero %d\n",i);
gets(m);
pm[i]=(char*)malloc(sizeof(char)*strlen(m));
if(!pm[i])
strcpy(pm[i],m);
return pm[];

}
int* lec_mat(int n)
{int i,mat[2][n];
for(i=0;i<n;i++)
{printf("donner la matricule et la serie de la voiture numero %d\n",i);
scanf("%d%d",mat+i,mat[1]+i);}
return mat;
}
float* lec_prix(int n)
{int i;
float prix[n];
for(i=0;i<n;i++)
{printf("donner le prix de location par jour pour la voiture qui a comme numero de matricule %d\n",*(mat+i));
scanf("%f",prix+i);
}
return prix;
}
tri_voiture(int n,char* x,int* y,float* z)
{char *aux;
int *aux2,*aux4,i,n,t;
float aux3;

x=lec_nv(n);
y=lec_mat(n);
z=lec_prix(n);
while(t=0)
{t=1;
for(i=0;i<n;i++)
{if(*(mat=i)<*(mat+i+1))

aux2=mat+i;
mat+i=mat+i+1;
mat+i+1=aux2;


aux4=mat[1]+i;
mat[1]+i=mat[1]+i+1;
mat[1]+i+1=aux4;

aux=x+i;
x+i=x+i+1;
x+i+1=aux;

aux3=z+i;
z+i=z+i+1;
z+1+i=aux3;
t=0;
}
}
je vous remercie fortement

7 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
20 mars 2008 à 16:59
si tu veux qu'on t'aide il faut nous aider aussi...
quel est le probleme ?
erreur de compilation ? si oui laquelle a quelle ligne ?
erreur de segmentation ?
aucune erreur mais le programme fait pas ce que tu veux ? dans ce cas que veux tu faire ?
0
kimologie Messages postés 5 Date d'inscription samedi 15 mars 2008 Statut Membre Dernière intervention 22 mars 2008
20 mars 2008 à 17:03
dabord merci
ba oui un problemme de compilation il me pose un envirent de 40 erreur;
lorsque je corrige quelque uns il trouve des autres probleme
j'ai pa arriver a resolut le probleme
0
Utilisateur anonyme
20 mars 2008 à 17:09
Wowww il va falloir que tu expliques à quoi ce sert tout ça parce que ton code est illisible
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
20 mars 2008 à 17:23
bon alors j'ai pas de compilateur sous la main pour tester mais je vais comme meme essayé de t'aidé
deja ton define n'est pas correct c'est plutot comme ça
#define N 4

a ce moment il faut que tu enleves tous tes
int n
qui ne serve a rien dans les parametres de tes fonctions et partout a l'interieur de tes fonctions tu mets N a la place de n
ça devrait deja resoudre quelques erreurs...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
20 mars 2008 à 17:35
Sans vouloir te contredire Mype je pense qu'il a déclaré cette variable comme valeur par défaut au cas où l'utilisateur ne saisit pas une valeur correcte pour la phrase : "donner le nombre de voiture a ajouter"
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
20 mars 2008 à 18:19
c'est possible mais je vois pas l'interet de demander a l'utilisateur le nombre de voiture a ajouter s'il n'y a qu'un seul choix possible...
de plus ça ne va pas marcher parce que le nombre de voiture sera stocké dans la variable n et le define il va remplacer tous les N dans le programme par 4 il ne va pas stocké 4 dans la variable n
dans ce cas tu peux laisser tous tes int n et enlever le define qui sert pas

et kimologie merci de repondre sur ton post et pas en privé pour que tout le monde en profite
0
kimologie Messages postés 5 Date d'inscription samedi 15 mars 2008 Statut Membre Dernière intervention 22 mars 2008
22 mars 2008 à 11:34
voici ou j'ai arriver dans mon mini projet svp aidez moi pour lui completé

#include<stdio.h>
#include<string.h>
#include<stdlib.h>





char* lec_nv(int i)
{

char m[20],*p[100];
//for(i=0;i<n;i++)

printf("donner :\n*le nom et la modele de la voiture numero %d\n",i+1);
fflush(stdin);
gets(m);
p[i]=(char*)malloc(sizeof(char)*strlen(m));
if(!p[i])
strcpy(p[i],m);

return p[0];


}
int lec_mat()
{int i=0,mat[100];
//for(i=0;i<n;i++)
do{
printf("*le numero de sa matricule svp:\n");
scanf("%d",mat+i);}while((*(mat+i)<100000)||(*(mat+i)>999999));
return mat[0];
}
int serie()
{int i=0,s[100];
//for(i=0;i<n;i++)
do{
printf("*le numero de sa serie svp\n");
scanf("%d",s+i);}while((*(s+i)<=0)||(*(s+i)>200));
return s[0];
}


float lec_prix()
{int i=0;
float prix[100];
//for(i=0;i<n;i++)
do{
printf("*sa prix de location par jour svp\n");
scanf("%f",&prix[i]);}while(prix[i]<=0);

return prix[0];
}
void tri_voiture(int n,char* x,int *mat,int *y,float *z)
{char *aux;
int *aux2,*aux4,i,t;
float *aux3;

for(i=0;i<n;i++)
{x=lec_nv(i);
*mat=lec_mat();
*y=serie();
*z=lec_prix();}
while(t=0)
{t=1;
for(i=0;i<n;i++)
{if(*(mat+i)<*(mat+i+1))
{
aux2=(mat+i);
*(mat+i)=*(mat+i+1);
*(mat+i+1)=*aux2;


aux4=(y+i);
*(y+i)=*(y+i+1);
*(y+i+1)=*aux4;

aux=x+i;
*(x+i)=*(x+i+1);
*(x+i+1)=*aux;

aux3=z+i;
*(z+i)=*(z+i+1);
*(z+1+i)=*aux3;
t=0;
}
}

}
}



int verif_dat(int d)
{int a,w,e,t;
e=d/100000;
w=(d/10000)%10;
a=d%10000;
if((a<1900)||(a>1988))
t=0;

else
{if((a%4)==0)
{if(((w==1)||(w==3)||(w==5)||(w==7)||(w==8)||(w==10)||(w==12))&&((e>0)&&(e<32)))
t=1;
else
if(((w==4)||(w==6)||(w==9)||(w==11))&&((e>0)&&(e<31)))
t=1;
else
if((w=2)&&((e>0)&&(e<30)))
t=1;
}
else
if((a%4)!=0)
{if(((w==1)||(w==3)||(w==5)||(w==7)||(w==8)||(w==10)||(w==12))&&((e>0)&&(e<32)))
t=1;
else
if(((w==4)||(w==6)||(w==9)||(w==11))&&((e>0)&&(e<31)))
t=1;
else
if((w=2)&&((e>0)&&(e<39)))
t=1;
}
}
return t;
}

char* lec_nom(int i)
{

char m[20],*p[100];


printf("donner :\n*le nom et le prenom du client numero %d\n",i+1);
fflush(stdin);
gets(m);
p[i]=(char*)malloc(sizeof(char)*strlen(m));
if(!p[i])
strcpy(p[i],m);

return p[0];


}
int lec_ncin()
{
int i=0,ncin[100];

do{
printf("*le numero de sa carte d'identitee svp:\n");
scanf("%d",ncin+i);}while((*(ncin+i)<1000000)||(*(ncin+i)>9999999));
return ncin[0];
}
int dat_nai()
{int i=0,s[100];
do{
printf("*sa date de naissance en bloc svp\n");
scanf("%d",s+i);}while(verif_dat(*(s+i))==0);
return s[0];
}



void tri_client(int n,char* x,int *mat,int *y)
{char *aux;
int *aux2,*aux4,i,m;

for(i=0;i<n;i++)
{x=lec_nom(i);
*mat=lec_ncin();
*y=dat_nai();}
while(m=0)
{m=1;
for(i=0;i<n;i++)
{if(*(mat+i)>*(mat+i+1))
{
aux2=(mat+i);
*(mat+i)=*(mat+i+1);
*(mat+i+1)=*aux2;


aux4=(y+i);
*(y+i)=*(y+i+1);
*(y+i+1)=*aux4;

aux=x+i;
*(x+i)=*(x+i+1);
*(x+i+1)=*aux;

m=0;
}
}

}
}



int trouve_mat(int n,int* x ,int* g)
{int i,t=0;
for(i=0;i<n;i++)
{if(*x==*(g+i))
{t=1;break;}
}
return t;
}


int trouve_ncin(int n,int* x ,int* g )
{int i,t=0;
for(i=0;i<n;i++)
{if(*x==*(g+i))
{t=1;break;}
}
return t;
}


int* ajou_emp(int* x,int* y)
{int t[4][100],i,aux,j,k,n;
printf("donner les nombre des emprunt a ajouter\n");
scanf("%d",&n);

for(i=0;i<n;i++)
{do{
printf("donner le numero de matricule de la voiture a emprunter\n");
scanf("%d",t+i);
printf("donner le numero de cin du client\n");
scanf("%d",*(t+1)+i);
printf("donner la date du debut d'emprunt\n");
scanf("%d",*(t+2)+i);
printf("donner la date de fin d'emprunt\n");
scanf("%d",*(t+3)+i);
}while((trouve_mat(n,*(t+i),y)==0)||(trouve_ncin(n,((*t+1)+i),x)==0)||(verif_dat(*(*(t+2)+i))==0)||(verif_dat(*(*(t+2)+i))==0));

if(*(t+i)<*(t+i+1))
{for(j=0;j<4;j++)
{for(k=0;k<n;k++)
{aux=*(*(t+j)+k)=
*(*(t+j)+k)=*(*(t+j)+k+1);
*(*(t+j)+k+1)=aux;}
}
}
}

return t[0];
}










void main()

{char x1=0;
int mat=0,y1=0,l;
float z1=0;

char x2=0;
int ncin=0,y2=0,k,*emp;

printf("donner le nombre de voiture a ajouter\n");
scanf("%d",&l);



tri_voiture(l,&x1,&mat,&y1,&z1);


printf("donner le nombre des client a ajouter\n");
scanf("%d",&k);



tri_client(k,&x2,&ncin,&y2);

emp=ajou_emp(&mat,&ncin);




}
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
22 mars 2008 à 16:48
c'est quoi le probleme exactement ?
0