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

Applications et environnements graphiques Discussion :

problème d'exécution sous linux


Sujet :

Applications et environnements graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut problème d'exécution sous linux
    voilà mon programme mais j'ai un problème de l'exécution; il m'affiche sur le consol , undefine refurence to floor et ceil
    Code C : 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
    #include<stdio.h>
    #include <stdlib.h>
    #include<math.h>
     
    double Arrondit( double x)
    {
     
       if (0<=x)
       {
          return floor(x+0.5);
       }
       else
       {
          return ceil(x-0.5);
       }
    }
     
    main() {
    double Arrondit( double x);
     double nbre ;
    printf("donne ton nbre\n");
    scanf("%lf",&nbre);
     
    printf("PT  de x = %f\n", Arrondit(  nbre) );
    }
    merci pour votre aide.

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    le message d'erreur est clair pourtant tu n'a jamais defini floor et ceil tout simplement donc tu ne peux pas utiliser ces fonctions alors tu dois renvoyer un resultat brut dans ton return et pas un resultat de fonction floor ou ceil

    Code C : 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
    pur31-2-82-225-219-67:~ # vi toto.c 
    7:~ # gcc toto.c -o titi
    toto.c: In function ‘Arrondit’:
    toto.c:11: error: called object ‘floor’ is not a function
    toto.c:15: error: called object ‘ceil’ is not a function
    7:~ # vi toto.c 
    7:~ # gcc toto.c -o titi
    7:~ # ./titi
    donne ton nbre
    10.2
    PT de x = 10.700000
    7:~ # cat toto.c && rm titi toto.c
    #include<stdio.h>
     #include <stdlib.h>
     #include<math.h>
     
     double Arrondit( double x)
     {
     if (0<=x)
             {
             return (x+0.5);
             }
     else
             {
             return (x-0.5);
             }
     }
     
     main() {
     double Arrondit( double x);
     double nbre ;
     printf("donne ton nbre\n");
     scanf("%lf",&nbre);
     
     printf("PT de x = %f\n", Arrondit( nbre) );
     }
    7:~ #

  3. #3
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut re
    vous pouvez me corriger mon programme

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Salut, ton pb est plus un pb de C qu'un pb linux, donc tu devrais aller sur le forum C

    quand tu compile, il faut que tu rajoute -lm à ta ligne de compilation pour pouvoir avoir accès aux fonctions mathématiques lm = librairy mathématique

    le prototype de main n'est pas main() mais soit int main(void) soit int main(int argc,char * argv[])

  5. #5
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par tosna
    vous pouvez me corriger mon programme
    comme tu le vois dans mes copies d'ecran il est déja corrigé.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 299
    Par défaut
    Citation Envoyé par tosna
    Code C : 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
    #include<stdio.h>
    #include <stdlib.h>
    #include<math.h>
     
    double Arrondit( double x)
    {
     
       if (0<=x)
       {
          return floor(x+0.5);
       }
       else
       {
          return ceil(x-0.5);
       }
    }
     
    main() {
    double Arrondit( double x);
     double nbre ;
    printf("donne ton nbre\n");
    scanf("%lf",&nbre);
     
    printf("PT  de x = %f\n", Arrondit(  nbre) );
    }
    merci pour votre aide.
    ta fonction main() est très bizarre... le x n'est pas défini

    correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int main(void)
     {
    double Arrondit( double x);  //efface cette ligne qui ne sert à rien et ce n'est pas comme ça qu'on appelle une fonction en C (double toto=Arrondit(x);)
     double nbre ;
    printf("donne ton nbre\n");
    scanf("%lf",&nbre);
     
    printf("PT  de x = %f\n", Arrondit(  nbre) ); // ne serait-ce pas plutôt printf("PT  de nbre = %f\n", Arrondit(  nbre) );  ?

Discussions similaires

  1. Problème au moment de l'exécution sous Linux
    Par ShimonD0 dans le forum C
    Réponses: 4
    Dernier message: 01/02/2012, 10h04
  2. Problème erreurs sockets sous Linux
    Par Ange44 dans le forum Linux
    Réponses: 6
    Dernier message: 05/09/2006, 17h16
  3. Problème de portabilité sous Linux
    Par eG.dam dans le forum Linux
    Réponses: 4
    Dernier message: 24/06/2006, 00h06
  4. [WebService](SSL] Problème de SSL sous Linux
    Par Tueur_a_gage dans le forum JOnAS
    Réponses: 4
    Dernier message: 09/01/2006, 17h38
  5. Problème avec glutFullScreen() sous linux...
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 29/11/2004, 12h30

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