Fonction rechercher

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

  • Votes
  • Date
  • Date décroissante
  1. n c'est le nombre d'élève , tu veux voir mon programme ? mais il est pas correcte :s:s
    1. c'est pas grave je pourrais peut-être pas t'aider mais je veut ben voir le prog complet! on sait jamais ;)
      1. 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();}
        1. 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!
          1. comment ! est c que comme ca
            int rechercher(eleve t[20], int n){
            ?
            1. pour ma part dans les paramètre : le tableau d'élèves, le nombre d'élèves et le nom a trouver
            2. 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
            3. merci j'essayerais de les faire mnt
            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 !!!!!!
            5. 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?