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 :

Appel à une fonction C


Sujet :

C

  1. #1
    Membre éclairé Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Par défaut Appel à une fonction C
    Bonsoir à tous,
    C la 1ere fois que je programme en C
    J'ai un souci c'est que j'arrive pas à faire un appel à ma fonction dans le main;
    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
     
    int main(int argc, char *argv[]) 
    { char c; 
    int N; 
    liste_mot* s =NULL; 
    Affiche_mots(s); 
    printf("\n\n la liste filtree \n\n"); 
    frequent( &s , 1); 
    Affiche_mots(s); 
    calcul_nbre_mot(b); 
    printf("%d",N," mot((s))"); 
     
    scanf("%c",c); 
    return 0; 
    }
    en fait tout marche nikel jusque l'appel de la fonction calcul_nbre_mot(b); il m'affiche pas le nbre de mots
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void calcul_nbre_mot(liste_mot *s) 
    { 
    liste_mot* m=s; 
    int N=0; 
    while(m!=NULL) 
    { 
    N=N+1; 
    } 
    printf("\n"); 
    }
    normallement le programme m'affiche le nbre de mots qui est N, mais la il m'affiche rien
    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 22
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void calcul_nbre_mot(liste_mot *s)
    {
        liste_mot* m=s;
        int N=0;
        while(m!=NULL)
        {
            N=N+1;
        }
        printf("\n");  // n'affiche rien et ne renvoie rien
    }
    tu calcule bien le nombre de mots mais tu ne peux t en servir car c est une variable locale a calcul_nbre_mot. pour l utiliser dans main il faut que tu la retournes, ou que tu passes N par pointeur a calcul_nbre_mot.

    bonne journee et bon courage pour tes debuts en C

  3. #3
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Citation Envoyé par cyrine Voir le message
    Bonsoir à tous,
    C la 1ere fois que je programme en C
    J'ai un souci c'est que j'arrive pas à faire un appel à ma fonction dans le main;

    int main(int argc, char *argv[])
    { char c;
    int N;
    liste_mot* s =NULL;
    Affiche_mots(s);
    printf("\n\n la liste filtree \n\n");
    frequent( &s , 1);
    Affiche_mots(s);
    calcul_nbre_mot(b);
    printf("%d",N," mot((s))");

    scanf("%c",c);
    return 0;
    }

    en fait tout marche nikel jusque l'appel de la fonction calcul_nbre_mot(b); il m'affiche pas le nbre de mots

    void calcul_nbre_mot(liste_mot *s)
    {
    liste_mot* m=s;
    int N=0;
    while(m!=NULL)
    {
    N=N+1;
    }
    printf("\n");
    }

    normallement le programme m'affiche le nbre de mots qui est N, mais la il m'affiche rien
    merci
    Apprends à utiliser la balise CODE et à indenter ton code correctement ainsi qu'à bien configurer ton compilateur et enfin poster un code compilable :
    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
    newmain.c:5: erreur: ‘liste_mot’ undeclared (first use in this function)
    newmain.c:5: erreur: (Each undeclared identifier is reported only once
    newmain.c:5: erreur: for each function it appears in.)
    newmain.c:5: erreur: ‘s’ undeclared (first use in this function)
    newmain.c:5: erreur: ‘NULL’ undeclared (first use in this function)
    newmain.c:6: attention : implicit declaration of function ‘Affiche_mots’
    newmain.c:6: attention : nested extern declaration of ‘Affiche_mots’
    newmain.c:7: attention : implicit declaration of function ‘printf’
    newmain.c:7: attention : incompatible implicit declaration of built-in function ‘printf’
    newmain.c:8: attention : implicit declaration of function ‘frequent’
    newmain.c:8: attention : nested extern declaration of ‘frequent’
    newmain.c:10: attention : implicit declaration of function ‘calcul_nbre_mot’
    newmain.c:10: attention : nested extern declaration of ‘calcul_nbre_mot’
    newmain.c:10: erreur: ‘b’ undeclared (first use in this function)
    newmain.c:11: attention : trop d'arguments pour le format
    newmain.c:13: attention : implicit declaration of function ‘scanf’
    newmain.c:13: attention : incompatible implicit declaration of built-in function ‘scanf’
    newmain.c:13: attention : format ‘%c’ expects type ‘char *’, but argument 2 has type ‘int’
    newmain.c: Hors de toute fonction :
    newmain.c:17: erreur: expected ‘)’ before ‘*’ token
    *** Error code 1

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par dev_tours Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void calcul_nbre_mot(liste_mot *s)
    {
        liste_mot* m=s;
        int N=0;
        while(m!=NULL)
        {
            N=N+1;
        }
        printf("\n");  // n'affiche rien et ne renvoie rien
    }
    tu calcule bien le nombre de mots mais tu ne peux t en servir car c est une variable locale a calcul_nbre_mot. pour l utiliser dans main il faut que tu la retournes, ou que tu passes N par pointeur a calcul_nbre_mot.


    il calcule rien, là... m n'est jamais incrémenté... boucle infinie...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 22
    Par défaut
    exact il ne calcule rien... j aurai du attendre le cafe avant de repondre...

Discussions similaires

  1. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46
  2. [DLL] problème pour appeler une fonction d'une DLL
    Par bigboomshakala dans le forum MFC
    Réponses: 34
    Dernier message: 19/07/2004, 11h30
  3. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  4. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

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