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 :

problème pour une calculatrice


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut problème pour une calculatrice
    Bonjour

    J'ai une petit en faisant une calculatrice

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h> 
     
    int main(int argc, char *argv[])
    {
        double boucle= 0;
    while (boucle = 47)
    {
      long calcul=0, autres=0, nbre1=0,  nbre2=0, resultat=0, result2 = 0, arrondis = 0;
      double absolu = 0, nombre1 = 0, nombre2 = 0, resul1 = 0; 
     
      printf("==Calculatrice==\n\n");
      printf("1.Addition\n");
      printf("2.Soustraction\n");
      printf("3.Multiplication\n");
      printf("4.Division\n");
      printf("5.Autres\n");
      printf("\nFaites votre choix: ");
      scanf("%ld", &calcul);
     
      switch (calcul)
      {
      case 1:
           printf("\n-Entrez le premier nombre : ");
           scanf("%ld", &nbre1);
           printf("-Entrez le second nombre : ");
           scanf("%ld", &nbre2);
           resultat = nbre1 + nbre2;
           printf ("\n-> %ld + %ld = %ld\n\n", nbre1, nbre2, resultat);
           break;
     
      case 2:
           printf("\n-Entrez le premier nombre (superieur au second) :");
           scanf("%ld", &nbre1);
           printf("-Entrer le second nombre (inferieur au premier) :");
           scanf("%ld", &nbre2);
           if(nbre1 > nbre2)
                    {
           resultat = nbre1 - nbre2;
           printf("\n-> %ld - %ld = %ld \n\n", nbre1, nbre2, resultat);
                    }
           else
                    {
           printf("\n-> IMPOSSIBLE : votre premier nombre est inferieur au second !\n\n");
                    }
           break;
     
      case 3:
           printf("\n-Entrez le premier nombre : ");
           scanf("%ld", &nbre1);
           printf("-Entrez le second nombre : ");
           scanf("%ld", &nbre2);
           resultat = nbre1 * nbre2;
           printf("\n-> %ld * %ld = %ld\n\n", nbre1, nbre2, resultat);
     
           break;
     
      case 4:
           printf("\n-Entrez le premier nombre : ");
           scanf("%ld", &nbre1);
           printf("-Entrez le second nombre : ");
           scanf("%ld", &nbre2);
     
           resultat = nbre1 / nbre2;
           result2 = nbre1 % nbre2;
           printf("-> %ld / %ld = %ld, et reste %ld\n\n", nbre1, nbre2, resultat, result2);
           break;
     
      case 5:
           printf("\n\n==Autres==\n\n");
           printf("1.Valeur Absolu\n");
           printf("2.Puissance\n");
           printf("3.Racine Carre\n");
           printf("\nFaites votre choix:");
           scanf("%ld\n\n", &autres);
           break;
     
           switch (autres)
    {
    case 1:
      printf("-Entrez un nombre decimal :");
      scanf("%lf", &nombre1);
      absolu = fabs(nombre1);
      printf("->La valeur absolu est %lf \n\n", absolu); 
     
      break;
    case 2:
      printf("-Entrez un nombre: ");
      scanf("%lf", &nombre1);
      printf("-Entrez l'exposant: ");
      scanf("%lf", &nombre2);                         
     
      resul1 = pow(nombre1, nombre2);
      printf("-> Le resultat est :%lf\n\n", resul1);
      break;
    case 3:
      printf("-Entrez un nombre");
      scanf("%lf", &nombre1);
      resul1 = sqrt(nombre1);
      printf("-> La racine carre est %lf\n\n", resul1);    
      break;
     
    }
     
     
      default:
           printf("\n->Vous n'avez pas rentre un nombre correct . Vous ne calculerez rien du tout !\n");
           break;
      }
     
     
     
    }  system("PAUSE");	
      return 0;
     
    }

    voila, à partir de "switch (autres)", tout ce que j'ai ecris avec printf ne s'affiche qu'aprés avoir entré la valeur de scanf, et c'est bizarre.

    Pourquoi ça fais comme ça ? j'ai pas trouvé

    Merci d'avance

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: problème pour une calculatrice
    Citation Envoyé par Anthobask
    voila, à partir de "switch (autres)", tout ce que j'ai ecris avec printf ne s'affiche qu'aprés avoir entré la valeur de scanf, et c'est bizarre.
    Pour utiliser scanf() il faut le permis. Les autres utilisent fgets() et la fonction de conversion qui va bien...

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Merci

    mais en remplacant fgets par scanf, ca marche pas !

    Que veux-tu dire par " il faut le permis " ?


    Merci

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Anthobask
    mais en remplacant fgets par scanf, ca marche pas !
    fgets() prend une ligne. Si tu veux convertir le texte en valeur numérique il faut d'autres fonctions en plus. Le mieux est de se faire ses propres fonctions de saisie/conversion pour
    • un caractère (menus)
    • une ligne de texte
    • un entier
    • un flottant

    ça couvre déjà pas mal de cas...
    Que veux-tu dire par " il faut le permis " ?
    J'ai pas été assez clair dans les liens que je t'ai passé ? scanf() est tout sauf une fonction de débutant. Elle est d'un usage difficile et les pièges sont nombreux. De plus, elle est mùal adaptée à une entrée 'humaine'.
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    ok, Merci


Discussions similaires

  1. Réponses: 2
    Dernier message: 28/12/2008, 18h51
  2. [SQL 2005] Problème pour une requête SELECT
    Par Rodie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/06/2007, 17h12
  3. Problème pour une page web
    Par draper dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/06/2007, 16h02
  4. Problème pour une définition de type
    Par Kleer dans le forum Ada
    Réponses: 4
    Dernier message: 05/03/2007, 12h34
  5. Problème pour une calculette
    Par Pyrhaa_666 dans le forum C
    Réponses: 5
    Dernier message: 13/07/2006, 19h47

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