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 :

programme sur code bloks


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut programme sur code bloks
    Bonjour à tous,
    je vient de faire un programme avec code bloks qui fait le calcul de x²/(1+y²)

    Mais je rencontre un petit problème, c'est à dire qu'il me trouve pas le bon résultat.
    Donc si vous pouvez me guider un peu dans la recherche de solution!
    Merci d'avance

    Voici mon programme :
    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int mult(int x, int y);
     
    int main()
    {
        int x;         
        int y;        
        int res;           
     
        printf ("saissir deux nombres entiers : x et y : \n");           
        scanf ("%d", &x);                                             
        scanf ("%d", &y);                                      
     
        res = mult(x, y);
     
        printf ("le resultat est : \n(%d*%d)/(%d*%d))=%f\n", x, x, y, y, res);
     
        system ("pause");
        return 0;
    }
     
        int mult(int x, int y) {                        
            int res=0;                                        
            res= (x*x)/(1+(y*y));                    
            return res;                             
    }

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Loa,

    Tu n'utilises que des entiers ==> division entière (1/10 vaut 0 !!).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut
    Citation Envoyé par droggo Voir le message
    Loa,

    Tu n'utilises que des entiers ==> division entière (1/10 vaut 0 !!).


    Je suis d'accord avec toi, mais je demande le résultat en float!

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Citation Envoyé par TGV6975 Voir le message
    Je suis d'accord avec toi, mais je demande le résultat en float!
    Bien oui mais en C si tu ne fais des calculs que sur des entiers le résultat sera lui aussi en entier.

    Il faut déjà modifier le calcul, en rajoutant par exemple un point après le 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    res = (x*x)/(1.+(y*y));
    Ensuite, les variables res (aussi bien dans mult que dans main) doivent elles-même être de type float, ainsi que le type de retour de ta fonction mult.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut
    Citation Envoyé par jeroman Voir le message
    Bien oui mais en C si tu ne fais des calculs que sur des entiers le résultat sera lui aussi en entier.

    Il faut déjà modifier le calcul, en rajoutant par exemple un point après le 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    res = (x*x)/(1.+(y*y));
    Ensuite, les variables res (aussi bien dans mult que dans main) doivent elles-même être de type float, ainsi que le type de retour de ta fonction mult.
    Just avant de voir ton message, j'avais mis float dans les variables "res" et "mult" mais ca n'a rien changé par contre le point après le 1, ca change tout!

    Merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programmation C++ sur CODE::BLOCKS 10.05
    Par Greg22000 dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 31/10/2012, 22h25
  2. Réponses: 0
    Dernier message: 03/04/2012, 20h03
  3. des information sur la programmation de codes barre
    Par mohammeedd1 dans le forum Windows
    Réponses: 2
    Dernier message: 16/01/2007, 15h14
  4. Tri sur code hiérarchique
    Par cafou33 dans le forum SQL
    Réponses: 5
    Dernier message: 22/03/2004, 17h19
  5. Déclenchement Programme sur Virtual Key
    Par Tom-G dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 09/05/2003, 12h58

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