Probleme en c

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
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. c'est quoi le probleme exactement ?
    0
    1. 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
      1. 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
        1. 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
      2. 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
        1. Wowww il va falloir que tu expliques à quoi ce sert tout ça parce que ton code est illisible
          0
          1. 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
            1. 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