Probleme en c
kimologie
Messages postés
5
Statut
Membre
-
mype Messages postés 2459 Date d'inscription Statut Membre Dernière intervention -
mype Messages postés 2459 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
Configuration: Windows XP Internet Explorer 6.0
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 ? -
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 -
Wowww il va falloir que tu expliques à quoi ce sert tout ça parce que ton code est illisible
-
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 tesint 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... -
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
-
-
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);
} -
c'est quoi le probleme exactement ?