Probleme en c
kimologie
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
mype Messages postés 2435 Date d'inscription Statut Membre Dernière intervention -
mype Messages postés 2435 Date d'inscription Statut Membre Dernière intervention -
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
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
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 ?
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 ?
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
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
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
a ce moment il faut que tu enleves tous tes
ça devrait deja resoudre quelques erreurs...
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 nqui 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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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"
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
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
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);
}
#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);
}