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 :

division simple avec des chiffres et non des variables


Sujet :

C

  1. #1
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut division simple avec des chiffres et non des variables
    bonjour a tous,
    je suis débutant en c
    mon exercice consiste a écrire un programme donnant le résultat de y en fonction de x
    ce que j'ai réussi mais je but sur un problème très bête
    je dois à un moment effectué une opération simple : divisé 3/4 et aussi soustraire à un résultat la valeur de 1
    et pour y arrivé je suis passé par des variable , je n'ai pas pus faire simplement "3/4" mais "d1/d2"
    voici le code,
    Merci de m'expliquer comment faire plus simplement
    (j'ai fait du step by step pour vérifier chaques totaux)
    merci
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
     
    void main() {
        double x;
        double y, y1, y2,d1,d2, d3;
         printf("ENTRER UNE VALEUR POUR \n");
        scanf("%lf", &x);
        printf ("x est %f\n",x);
        y1=2*(x*x);
        printf ("2 fois x au carre est : %lf\n", y1);
        d1=3;
        d2=4;
        d3=1;
     
        y2=d1/d2;
        printf("3/4 sont bien : %lf\n",y2);
     
        y2=y2*x;
        printf("3/4 de x est : %lf\n",y2);
     
        y2=y2-2;
        printf("y2-2 : %lf\n",y2);
     
        y2=y2*2;
        printf("2 fois y2 : %lf\n",y2);
     
        y2=y2+y1;
        printf("y2+y1 y2 : %lf\n",y2);
     
        y2=y2/5;
        printf("y2 / 5 : %lf\n",y2);
     
     
     
     
        y = y2-d3;
     
     
        printf("La valeur de y est : %lf", y);
     
        getch();

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Gie,

    C'est parce que quand tu écris 3/4, les 2 valeurs sont des entiers, et dans ce cas, C fait une division entière, et le résultat est donc 0.

    Si les cons volaient, il ferait nuit à midi.

  3. #3
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    merci

    du coup dans une opération plus longue comme
    comment dois-je procéder pour que l'opération se fasse sans passer par des variables comme j'ai procéder ?

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Doa,

    Il suffit de mettre au moins une des valeurs en flottant, par exemple 3.0/4

    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Membre averti Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Points : 367
    Points
    367
    Par défaut
    super
    merci

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par droggo Voir le message
    Il suffit de mettre au moins une des valeurs en flottant, par exemple 3.0/4
    Attention attention, le calcul se faisant étape par étape et étant lié aux priorités des opérateurs, "au-moins une des valeurs" peut ne pas suffire (surtout si on ne choisit pas la bonne)
    Exemple: 2.0+3/4 => on a bien une des valeurs en flottant mais le résultat donnera 2.0 et non 2.75 parce que la première opération donnée par les priorités est 3/4 et que cette opération se fait en int

    Citation Envoyé par bosk1000 Voir le message
    Si tu utilises une variable (ici "y"), t'as aussi le droit de la "transformer" durant l'opération (cast). Et toujours en t'arrangeant pour que cette opératon soit la première, exemple x=(float)y*3/4. Et le cast fonctionne aussi avec les constantes si on le désire (mais peu utilisé)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 20/06/2014, 10h02
  2. lien avec des chiffres séparés par des points
    Par dominos dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2013, 17h36
  3. [MySQL] MySQL retourne des chiffres au lieu des noms avec accents
    Par wenijah dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/04/2012, 21h59
  4. [CS4] background avec des <table> et non des <div> ?
    Par toinoudu85 dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 02/02/2010, 09h34
  5. Réponses: 2
    Dernier message: 18/12/2009, 17h56

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