IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

une fonction qui ne s'execute pas correctement


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2012
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 12
    Points : 6
    Points
    6
    Par défaut une fonction qui ne s'execute pas correctement
    bonjour le programme sexecute proprement mais il ya une probleme dans la fonction est identique elle fonctionne d'une maniere incorrecte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    #include<stdio.h>
    #include<stdlib.h>
     
     typedef struct personne
    {
    	char nom[30];
    	int anneenaissance;
    	char telephone[20];
    }personne;
    typedef struct cellule
    {
    	personne val;
    	struct cellule*prochainecellule;
    }cellule; 
    void saisirpersonne(personne*p)
    {
     
    printf("saisir le nom\n ");
    scanf("%s",&p->nom);
     
    printf("saisir la date de naissance\n");
    scanf("%d",&p->anneenaissance);
    printf("saisir le telephone\n");
    scanf("%s",&p->telephone);
     
     
     
    }
     
    void affiche(personne*p)
    {
    	printf("le nom=%s\n",p->nom);
    	printf("la date de naissance=%d\n",p->anneenaissance);
    		printf("telephone=%s\n",p->telephone);
    }
     
    int estidentique(personne*p1,personne*p2)
    {	 
     
    	if((p1->nom==p2->nom)&&(p1->anneenaissance==p2->anneenaissance))
    	{
    		if(p1->telephone==p2->telephone)
    			return(1);
    	}
    	else
    		return(0);
    }
     void main()
    {
    personne*p1=(personne*)malloc(sizeof(personne));
     personne*p2=(personne*)malloc(sizeof(personne));
     
     saisirpersonne(p1);
     saisirpersonne(p2);
     
    affiche(p1);
    affiche(p2);
     
     
     
     
     if (estidentique(p1,p2)==1)
    	 printf("les duex personnes sont identiques ");
     else printf("non identique");
     }

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 178
    Points : 451
    Points
    451
    Par défaut
    bonjour,

    Pour commencer on ne peut pas comparer des chaines de caractères avec un simple '==', jete un oeil à "strcmp"...

    ps : petite remarque : que renvoie ta fonction "estidentique" si tout est pareil sauf le numéro de téléphone?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 39
    Points : 12
    Points
    12
    Par défaut
    salut
    il faut utiliser strcmp pour les chaine de caractères
    @+

  4. #4
    Malikemal
    Invité(e)
    Par défaut
    Je pense que les deux personnes qui ont eu la bonté de te répondre malgré une orthographe qui fait mal aux yeux ont raison. Néanmoins tu devrais préciser un minimum ce qu'est "une manière incorrecte" ... Un problème de compilation ? Ça ne renvoi pas ce que ça devrait ? Ou alors ça affiche sur ton écran "Turlututu" ?

    À bon entendeur,

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 382
    Points : 41 588
    Points
    41 588
    Par défaut
    Au passage, estidentique() gagnerait à être déclarée ainsi:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    int estidentique(personne const*p1, personne const*p2)
    Cela veut dire qu'elle "promet" de ne pas modifier les données pointées.

Discussions similaires

  1. Jquery fonction qui ne s'execute pas sous IE6 IE7
    Par boutmos dans le forum jQuery
    Réponses: 2
    Dernier message: 06/10/2009, 15h54
  2. Jquery fonction qui ne s'execute pas sous IE6 IE7
    Par boutmos dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/10/2009, 12h44
  3. Fonction qui ne s'execute pas
    Par RegiO dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 27/07/2006, 10h45
  4. [Surnaturel] Une fonction qui marche en débug, pas en release
    Par 10_GOTO_10 dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/07/2006, 15h22
  5. fonction qui ne s'execute pas mais qui ne retourne pas d'erreur
    Par duplo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/06/2006, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo