Fonction rechercher

betyzak Messages postés 45 Statut Membre -  
betyzak Messages postés 45 Statut Membre -
cette fonction retourne just -1 pouvez vous m'aider svp et merci .

//fonction rechercher

int rechercher(char nom[15],int a){
int i,n;
eleve t[20];
for(i=1;i<=n;i++){
if (strcmp(t[i].nom,nom)==0)
return(0);
else
return(1); }
}

7 réponses

  1. betyzak Messages postés 45 Statut Membre 4
     
    svp je veux une solution !
    0
  2. youplay Messages postés 138 Statut Membre 4
     
    peut-être aucun rapport, mais n prend quel valeur?
    0
  3. betyzak Messages postés 45 Statut Membre 4
     
    n c'est le nombre d'élève , tu veux voir mon programme ? mais il est pas correcte :s:s
    0
  4. youplay Messages postés 138 Statut Membre 4
     
    c'est pas grave je pourrais peut-être pas t'aider mais je veut ben voir le prog complet! on sait jamais ;)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. betyzak Messages postés 45 Statut Membre 4
     
    le voilà :

    // programme gestion d'élève

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <string.h>
    typedef struct {
    char nom[20];
    char prenom[20];
    int cin;
    }eleve;

    int main(int n)
    {

    eleve t[20] ;

    menu();

    return 0;}
    //fonction rechercher

    int rechercher(char nom[15],int a){
    int i,n;
    eleve t[20];
    for(i=1;i<=n;i++){
    if (strcmp(t[i].nom,nom)==0)
    return(0);
    else
    return(-1); }
    }
    // procedure remplissage

    remplir(){
    int n,i;
    eleve t[20];
    printf("entrer le nombre d'eleve saisie :");
    scanf("%d",&n);
    for(i=1;i<=n;i++){
    printf("entrer le nom :");
    scanf("%s",&t[i].nom);
    printf("entrer le prenom :");
    scanf("%s",&t[i].prenom);
    printf("entrer le cin :");
    scanf("%d",&t[i].cin);}

    }

    //procedure ajouter
    /*
    void ajouter( eleve t[20]){
    int i,m,n;

    n=n+1;

    printf("entrer le nom :");
    scanf("%s",&t[n].nom);
    printf("entrer le prenom :");
    scanf("%s",&t[n].prenom);
    printf("entrer le cin :");
    scanf("%d",&t[n].cin);
    printf("\n l'ajout a ete effectue avec succes \n");
    }
    */
    // procedure modification

    void modifier(){

    int ch,pos,n,a;
    eleve t[20];
    char nom[20];

    rechercher(nom,a);
    if(a==1)
    printf("l'eleve a modifier n'existe pas dans le tableau\n");
    else {
    do{
    printf("\nvous voulez modifier=====>\n\n");
    printf("1--------->cin\n");
    printf("2--------->nom\n");
    printf("3--------->prenom\n");
    printf("4--------->quitter\n");
    printf("\n____________________________________\n");
    printf("entrer votre choix SVP :");
    scanf("%d",&ch);}
    while(ch>4);
    switch (ch){
    case 1:modifcin(pos);break;
    case 2:modifnom(pos);break;
    case 3:modifprenom(pos);break;
    case 4:printf("____________________QUITTER_________________\n");break;
    }}}

    // procedure modifier le cin

    modifcin(int pos){

    eleve t[20];
    printf("entrer le nouveau cin:");scanf("%d",&t[pos].cin);
    printf("la modification a ete effectue avec succes\n");}

    // procedure modifier le nom

    modifnom(int pos){
    eleve t[20];
    printf("entrer le nouveau nom:");scanf("%s",&t[pos].nom);
    printf("la modification a ete effectue avec succes\n");}

    // procedure modifier le prenom

    modifprenom(int pos){
    eleve t[20];
    printf("entrer le nouveau prenom:");scanf("%s",&t[pos].prenom);
    printf("la modification a ete effectue avec succes\n");}

    // procedure consulter

    void consulter(int pos){
    char nom[15];
    eleve t[20];
    int a;
    printf("entrer le nom d'eleve a consulter: ");
    scanf("%s",&nom);
    rechercher(nom,a);
    if(pos==0)
    {
    printf("le cin de cet eleve :%d",t[pos].cin);
    printf("le nom de cet eleve :%s",t[pos].nom);
    printf("le prenom de cet eleve :%s",t[pos].prenom);
    printf("\n la consultation a ete effectue avec succes \n");}

    else
    printf("l'eleve a consulter n'existe pas dans le tableau\n");
    }
    // procedure supprimer

    void supprimer(int pos){
    int i,n ,a;
    char nom[15];
    eleve t[20];
    printf("entrer le nom d'eleve a supprimer: ");
    scanf("%s",&nom);
    pos=rechercher(nom,a);
    if(pos=-1)
    printf("l'eleve a supprimer n'existe pas dans le tableau\n");
    else {
    for(i=1;i<=n-1;i++){
    t[i]=t[i+1];}

    n=n-1;
    printf("\n la suppression a ete effectue avec succes \n");

    }
    }

    // menu

    int menu(){
    int pos,n;
    eleve t[20];
    char nom[20];
    int choix;
    do{
    printf("********MENU*********\n");
    printf("1- REMPLIR\n");
    printf("2- AJOUTER\n");
    printf("3- MODIFIER\n");
    printf("4- CONSULTER\n");
    printf("5- SUPPRIMER\n");
    printf("6- QUITTER\n");
    printf("*********************\n");
    printf("entrer votre choix SVP :");
    scanf("%d",&choix);}

    while(choix>6);

    switch (choix){
    case 1:
    remplir();
    menu();
    break;
    /*case 2:ajouter(t);
    menu();
    break;*/
    case 3:printf("entrer le nom d'eleve a modifier: ");
    scanf("%s",&nom);
    modifier();
    menu();
    break;
    case 4:consulter(pos);
    menu();
    break;
    case 5:supprimer(pos);
    menu();
    break;

    case 6:printf("vous avez choisi de quitter le programme \n");
    break;}

    getch();}
    0
  7. youplay Messages postés 138 Statut Membre 4
     
    deux choses:
    -tu déclare la variable n qui doit contenir le nombre d'élèves mais quel est sa valeur dans la fonction recherche.

    -le tableau t est lui aussi déclarer dans la fonction, donc je pense qu'il est vide!
    0
  8. betyzak Messages postés 45 Statut Membre 4
     
    comment ! est c que comme ca
    int rechercher(eleve t[20], int n){
    ?
    0
    1. youplay Messages postés 138 Statut Membre 4
       
      pour ma part dans les paramètre : le tableau d'élèves, le nombre d'élèves et le nom a trouver
      0
    2. youplay Messages postés 138 Statut Membre 4
       
      int rechercher(char nom[15],int a, int n, eleve t[20){
      int i,;
      for(i=1;i<=n;i++){
      if (strcmp(t[i].nom,nom)==0)
      return(0);
      else
      return(1); }
      }


      ensuite pour ce qui est de la fonction strcmp je ne la connait pas donc je ne sait pas ce qu'elle retourne
      0
    3. betyzak Messages postés 45 Statut Membre 4
       
      merci j'essayerais de les faire mnt
      0
    4. betyzak Messages postés 45 Statut Membre 4
       
      mais ds ce cas la fonction va retourner a chaque fois n et t et le nom , j'ai essayé mais elle m'a retourner que l'élève n'existe pas !!!!!!
      0
    5. youplay Messages postés 138 Statut Membre 4
       
      ta fonction devré retourner seulement 0 ou 1. l'élève existe t'il bien dans le tableau?
      Ta fonction retourne quoi après exécution?
      0