hg Register Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet

Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index

hg Revision tunisie scolaire Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Search Search Memberlist Memberlist Usergroups Usergroups Profile Profile Log in to check your private messages Private Messages Log in Log in


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum révision tunisie , vous devez
 inscrire sur notre forum a partir d'ici
   NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
 
forum d'aide informatique : internet, réseau, programmation informatique ...
une erreur dans le code
 
 
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Espace étudiants -> Cours & Documentations -> Programmation C
hg Previous topic :: Next topic   hd
Author Message
doudou


Offline

Joined: 10 Sep 2010
Posts: 13
Féminin
Point(s): 14
Moyenne de points: 0

Posted: Wed 28 Mar - 11:49 (2012)    Post subject: une erreur dans le code Reply with quote

j'ai écrit ce code qui permet de saisir une liste puis afficher le nombre d’occurrence d'un entier entré dans le champ code ,le problème est que ce code s’exécute mais il ne compte pas le nombre d’occurrence Sad pouvez vous m'aider ?  (dev /c++)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct etudiant
{
    char nom[25];
    char prenom[20];
    int age;
    int code;
    struct etudiant * suivant ;
};

typedef struct etudiant etudiant;
typedef etudiant liste;

// fonction ajouter debut
liste * ajouter_debut (liste * ma_liste)
{  
    liste * nouv_etudiant;
    nouv_etudiant=(liste*)malloc(sizeof(liste));

    printf("le nom est:\n");
    scanf("%s",(nouv_etudiant -> nom));
   
    printf("son prenom est: \n");
    scanf("%s",(nouv_etudiant -> prenom));
   
    printf("son age est:\n");
    scanf("%d",&(nouv_etudiant -> age));
   
    printf("son code est:\n");
    scanf("%d",&(nouv_etudiant -> code));

    nouv_etudiant -> suivant = ma_liste;


return(nouv_etudiant );

}


//fonction recherche

liste* rech(liste* ma_liste,int x)
{liste *p=ma_liste;
  while (p !=NULL)
       {  if (p->code == x)
                       { /* printf("%s",p->nom);
                        printf("%s",p->prenom);
                       printf("%d",p->age); */
                      return(p);
                       }
                   p=p->suivant;
          
       }
           return(NULL);
}
 //fonction nombre d'occurence
int nb_occ(liste* ma_liste,int x)
{ int cp=0;
   
if (ma_liste==NULL)
return(0);

else

    while( (ma_liste = rech(ma_liste,x)) !=NULL)
{
ma_liste=ma_liste->suivant;
cp++ ;
}
return(cp);
}
}

//fonction affiche

void affiche(liste* ma_liste)
{
    liste *temp;
    temp = ma_liste;       
 
         while(temp !=NULL)
        {
            printf("le nom est %s \n",temp->nom);   
            printf("son prenom est: %s \n",temp->prenom);
            printf("son age est:%d \n",temp->age);
            printf("son code est: %d \n \n",temp->code);
   
          temp=temp->suivant;
        }
}

int main()
{
    liste* ma_liste;
ma_liste=NULL;

int n,i,v,x;

printf("n=");
scanf("%d",&n);

for(i=1;i<=n;i++)
{
ma_liste=ajouter_debut(ma_liste);
}
affiche(ma_liste);

printf("x=");
scanf("%d",&x);


v = nb_occ(ma_liste,x);
printf("le nombre d'occurence est %d \n",v);


system("pause");

return(0);

}


 
Revenir en haut
Publicité






Posted: Wed 28 Mar - 11:49 (2012)    Post subject: Publicité

PublicitéSupprimer les publicités ?
 
Revenir en haut
evileyes


Offline

Joined: 23 Aug 2012
Posts: 1
Point(s): 1
Moyenne de points: 0

Posted: Thu 23 Aug - 18:39 (2012)    Post subject: une erreur dans le code Reply with quote

tu n'as qu'a faire merger les fonction nb_occ() et rech() comme ci:

 
Code:

int nb_occ(liste* ma_liste,int x)
{
   int cp=0;
   while (ma_liste)
   {
       if (ma_liste->code == x) cp++;
       ma_liste = ma_liste->suivant;
   }
   return(cp);
}
 


 
Revenir en haut
Display posts from previous:   
bg bd
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Espace étudiants -> Cours & Documentations -> Programmation C All times are GMT + 1 Hour
 
Page 1 of 1

 
Jump to:  
Index | Make forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation