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 :

calculette qui calcule pas (aide svp)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut calculette qui calcule pas (aide svp)
    salut pour m'entrainer en language C je suis débutant j'ai voulus conçevoir une petite calculette toute simple avec comme fonction
    -addition
    -soustraction
    -multiplication
    -division
    et le seul probleme c'est quelle ne calcule pas !lol
    donc j'ai besoin d'aide j'esper que mon code est claire
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    int main(int argc, char *argv[])
    {
        long C=0;
        double Nmulti=0,N=0,S=0;
        double Div=0, D=0, s=0;
        double A=0,B=0,R=0;
        double G=0, H=0, I=0;
      //************************************************************************
     
      printf ("    debut du nouveau programme (calculatrice)\n\n\n\n");
      //************************************************************************
     
      double multi(double Nmulti, double N, double S);
      double diviser (double Div ,double D, double s);
      double addition (double A, double B, double R);
      double soustra (double G, double H, double I);
     
      //*************************************************************************
              printf ("     1. Multiplication\n");
              printf ("     2. Addition\n");
              printf ("     3. Division\n");
              printf ("     4. Soustraction\n\n\n");
              printf ("  Faites votre choix:");
              scanf  ("%ld",&C);
      //************************************************************************
     
              if (C==1)
              {
                       printf ("Tapez le nombre a multiplier:");
                       scanf ("%lf",&Nmulti);
                       printf ("Tapez le nombre par lequel vous voulez le multiplier:"); 
                       scanf ("%lf", &N);
                       multi(Nmulti,N,S);
                       printf ("La resultat est: %lf\n\n",S);
              }
              //*******************************************************
              else if (C==3)
              {
                       printf (" Tapez le nombre a diviser:");
                       scanf ("%lf", &Div);
                       printf ("Tapez le nombre par lequel vous voulez le diviser:");
                       scanf ("%lf",&D);
                       diviser (Div,D,s);
                       printf ("Le resultat est: %lf\n\n", s);
              }
              //*******************************************************
              else if (C==2)
              {
                       printf ("Tapez le nombre a additionner:");
                       scanf  ("%lf", &A);
                       printf ("Tapez le nombre avec lequel vous voulez l'additionner:");
                       scanf  ("%lf", &B );
                       printf ("Le resultat est: %lf\n\n",R);
              }
              //*******************************************************
              else if (C==4)
              {
                   printf ("Tapez un nombre:");
                   scanf  ("%lf",&G);
                   printf ("Tapez le nombre que vous voulez lui soustraire:");
                   scanf  ("%lf",&H);
                   soustra (G,H,I);
                   printf ("Le resultat est: %lf\n\n", I);
              }   
     
     
     
     
      system("PAUSE"); 
      return 0;
    }
     
    //*************************************************************************
     double multi(double Nmulti, double N, double S)
     {     
           double Nmulti=0,N=0,S=0;
           S = Nmulti*N;
     }
    //***************************************************************************
     double diviser (double Div ,double D, double s)
     {
            s = Div / D;
     }
    //***************************************************************************
     double addition (double A, double B, double R)
     {
            R = A + B;
     }
    //***************************************************************************
     double soustra (double G, double H, double I)
     {
            I = G - H;
     }

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut

    Waw , tu declares des fonctions à l'interieur meme du main???

  3. #3
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut
    pkoi ? C'est pas comme ça que l'on fait?

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Par défaut
    Bonsoir

    1. On ne met pas de fonctions/prototypes dans une autre fonction.
    2. Une fonction doit toujours retourner une valeur (sauf une fonction de type void).
    3. Tu utilises mal scanf, utilise fgets + sscanf (voir FAQ, google [man 3 fgets; man 3 sscanf]).
    4. Un switch c'est mieux.

    A part ça je vois pas.

  5. #5
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut

    Et la traduction je peu l'avoir ou?

  6. #6
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    (Kr00ps, espece de cafetiere )

  7. #7
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut
    désoler
    -switch = connais po!
    -fget = po appris!
    -sscanf = non plus!

  8. #8
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Bah.. essaye de lire un bookain de C alors, pour avoir un peu plus de bases !

  9. #9
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut
    Euh......
    Vous croyez que si j'enleve les prototype de mes fonctions de la fonction main elle va calculer????

  10. #10
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Non, il faut que tu mettes les prototypes AU DESSUS du main (en dehors de toute fonction)

  11. #11
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut
    Oui justement j'ai voulu acheter un bouquin sur le C mais il n'y avait que des bouquin avec des exos pour les étudiants en informatique .
    Donc je voulais savoir ou est-ce que l'on pourrait commander un bouquin style "pour les nul"

  12. #12
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Par défaut
    Bah... si tu ne connais pas switch, même pas la peine de faire un programme "utile" (j'entend par utile, qui n'est pas un exemple pour apprendre à programmer), ouvre ton "livre de C" et lis-le car la on ne va pas pouvoir t'aider

    EDIT : Han gruik, tu me grilles toujours.

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par samy100
    salut pour m'entrainer en language C je suis débutant j'ai
    langage...
    voulus conçevoir une petite calculette toute simple avec comme fonction
    -addition
    -soustraction
    -multiplication
    -division
    et le seul probleme c'est quelle ne calcule pas donc j'ai besoin d'aide j'esper que mon code est claire
    Ton français est dramatique...

    Ton code commenté et partiellement corrigé :
    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    /* -ed- code reindente. */
     
    /* -ed- ajoute */
    #include <stdio.h>
     
    /* -ed-
    Mieux vaut s'en tenir au principe 'definir avant d'utiliser'.
    Code deplace.
     
    Ces fonctions ne sont pas exportees : ajoute le qualificateur static.
    */
     
    //*************************************************************************
    static double multi(double Nmulti, double N, double S)
    {
       /* -ed-
       double Nmulti = 0, N = 0, S = 0;
     
       Tu definis des variables qui ont le meme nom que les parametres
       et qui, par consequent rendent ceux-ci inaccessibles.
       Probablement inutile. Je supprimme. */
       S = Nmulti * N;
    }
     
    //***************************************************************************
    static double diviser (double Div , double D, double s)
    {
       s = Div / D;
    }
     
     
    /* -ed- jamais utilisee ... c'est normal ? */
    //***************************************************************************
    static double addition (double A, double B, double R)
    {
       R = A + B;
    }
     
    //***************************************************************************
    static double soustra (double G, double H, double I)
    {
       I = G - H;
    }
     
    /* -ed-
    int main(int argc, char *argv[])
    tu n'utilises pas ces parametres...
    */
    int main(void)
    {
       long C = 0;
       double Nmulti = 0, N = 0, S = 0;
       double Div = 0, D = 0, s = 0;
       double A = 0, B = 0, R = 0;
       double G = 0, H = 0, I = 0;
       //************************************************************************
     
       printf ("    debut du nouveau programme (calculatrice)\n\n\n\n");
       //************************************************************************
    /* -ed- on ne definit pas de prototype dans une fonction. Suppression
       double multi(double Nmulti, double N, double S);
       double diviser (double Div , double D, double s);
       double addition (double A, double B, double R);
       double soustra (double G, double H, double I);
    */
     
       //*************************************************************************
       printf ("     1. Multiplication\n");
       printf ("     2. Addition\n");
       printf ("     3. Division\n");
       printf ("     4. Soustraction\n\n\n");
       printf ("  Faites votre choix:");
       scanf ("%ld", &C);
       //************************************************************************
     
       if (C == 1)
       {
          printf ("Tapez le nombre a multiplier:");
          scanf ("%lf", &Nmulti);
          printf ("Tapez le nombre par lequel vous voulez le multiplier:");
          scanf ("%lf", &N);
          multi(Nmulti, N, S);
          printf ("La resultat est: %lf\n\n", S);
       }
       //*******************************************************
       else if (C == 3)
       {
          printf (" Tapez le nombre a diviser:");
          scanf ("%lf", &Div);
          printf ("Tapez le nombre par lequel vous voulez le diviser:");
          scanf ("%lf", &D);
          diviser (Div, D, s);
          printf ("Le resultat est: %lf\n\n", s);
       }
       //*******************************************************
       else if (C == 2)
       {
          printf ("Tapez le nombre a additionner:");
          scanf ("%lf", &A);
          printf ("Tapez le nombre avec lequel vous voulez l'additionner:");
          scanf ("%lf", &B );
          printf ("Le resultat est: %lf\n\n", R);
       }
       //*******************************************************
       else if (C == 4)
       {
          printf ("Tapez un nombre:");
          scanf ("%lf", &G);
          printf ("Tapez le nombre que vous voulez lui soustraire:");
          scanf ("%lf", &H);
          soustra (G, H, I);
          printf ("Le resultat est: %lf\n\n", I);
       }
     
    /* -ed- pas utilise si tu n'as pas DEv-C++
       system("PAUSE");
    */
       return 0;
    }

  14. #14
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut
    Euh.....emmanuel, tu as utilisé le premier code.


    //************************************************************************
    /* -ed- on ne definit pas de prototype dans une fonction. Suppression
    double multi(double Nmulti, double N, double S);
    double diviser (double Div , double D, double s);
    double addition (double A, double B, double R);
    double soustra (double G, double H, double I);
    */

    Je l'avais corrigé.

  15. #15
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut
    samy100 a écrit :
    salut pour m'entrainer en language C je suis débutant j'ai
    Citation:
    langage...
    voulus conçevoir une petite calculette toute simple avec comme fonction
    -addition
    -soustraction
    -multiplication
    -division
    et le seul probleme c'est quelle ne calcule pas donc j'ai besoin d'aide j'esper que mon code est claire

    Ton français est dramatique...
    Pas besoin de le répéter!

  16. #16
    Membre confirmé Avatar de samy100
    Inscrit en
    Avril 2006
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 96
    Par défaut
    Et ton code ne marche po.

  17. #17
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Octobre 2005
    Messages : 141
    Par défaut
    Pas besoin de le répéter!
    Effectivement, rien ne sert de courir si on ne sait point marcher (je sais, c'est pas exactement ça le dicton mais c'est arrangé à mon sauce ).

    Achète un becherelle puis un K&R et après on verra

    Et ton code ne marche po.
    Messages d'erreurs ? C'est bien beau de faire 3 posts de suite pour dire : "LOLZ tn cod IL MaRChE Pô mdr" (j'exagère à peine).

    Et, si tu n'utilises pas nos conseils, ne poste plus à l'avance, ça ne sert strictement à rien.

  18. #18
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par samy100
    Et ton code ne marche po.
    J'avais prévenu :

    Citation Envoyé par Emmanuel Delahaye
    Ton code commenté et partiellement corrigé :
    Je me suis contenté de le rendre compilable. Des défauts t'ont été signalés, notamment que les fonctions ne retournent rien...

    Il me semble aussi qu'elles ont beaucoup de paramètres pour des opération à 2 opérandes...

    Faut peut être aussi que tu te donnes un peu de mal et que tu corriges ton code toi même. On ne va pas tout te mettre tout cuit dans le bec...

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

Discussions similaires

  1. Directx ne valide pas.. Aide SVP
    Par Namyar dans le forum DirectX
    Réponses: 3
    Dernier message: 19/10/2010, 00h22
  2. Réponses: 7
    Dernier message: 27/04/2006, 14h51
  3. [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Par Albertolino dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2003, 14h18

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