hg S’enregistrer 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 Index du Forum

hg Revision tunisie scolaire Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Rechercher Rechercher Membres Membres Groupes Groupes Profil Profil Se connecter pour vérifier ses messages privés Messages Privés Connexion Connexion


 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
 
 
Poster un nouveau sujet   Répondre au sujet    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Index du Forum -> Espace étudiants -> Cours & Documentations -> Programmation C
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
doudou


Hors ligne

Inscrit le: 10 Sep 2010
Messages: 15
Féminin
Point(s): 16
Moyenne de points: 0

Posté le: Mer 28 Mar - 11:49 (2012)    Sujet du message: une erreur dans le code Répondre en citant

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é






Posté le: Mer 28 Mar - 11:49 (2012)    Sujet du message: Publicité

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


Hors ligne

Inscrit le: 23 Aoû 2012
Messages: 1
Point(s): 1
Moyenne de points: 0

Posté le: Jeu 23 Aoû - 18:39 (2012)    Sujet du message: une erreur dans le code Répondre en citant

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
Contenu Sponsorisé






Posté le: Aujourd’hui à 06:50 (2017)    Sujet du message: une erreur dans le code

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Index du Forum -> Espace étudiants -> Cours & Documentations -> Programmation C Toutes les heures sont au format GMT + 1 Heure
 
Page 1 sur 1

 
Sauter vers:  
Index | créer forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation