Code

abdinelickd Messages postés 2 Statut Membre -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour...?!
je veux ecrire un programme qui va calculer comme une calculatrice quand je compile le programme il n'y a pas d'erreur de compilation ou d'execution juste dans c'est les instructions de boucle qui s'execute et ce repete par exemple quand je fais le choix d'une operation et que je tape entrer c'est des instructions de la bouce qui ce repete voila le code kindly help me
je travail avec le langage C

#include<stdio.h>
#include<stdlib.h>

int main(){
float b,a;
char op;

do { printf("choosen an operation\n \n");
printf(" 1: addition \n 2: soustration \n 3: multiplication \n 4: division \n");
scanf("%c",&op);
} while ((op !=1) && (op !=2) && (op !=3) && (op !=4));
printf("type the first number");
scanf("%f",a);
printf("type the second number");
scanf("%f",b);

switch(op){
   case '+' : printf("%f + %f=%f",a,b,a+b);
   break;
    case '-' : 
    if (a<b){
     printf("operation impossible a must be compelsary supertior to b");
    }
    else {
     printf(" %f - %f= %f",a,b,a-b);
    }
    break;
    case '*' : printf("%f * %f = %f",a,b,a*b);
    break;
    case'/':
     if(b==0){
      printf("the division by zero is impossible");
     }
     else{
      printf(" %f / %f= %f",a,b,a/b);
     }
     break;
     default: printf("operation incorrect \n");


}


system ("pause");
 return 0;
}


Merci d'avance..!?

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir,
    tu ne trouves pas cela bizarre de comparer un nombre à un caractère, quand tu fais
    op !=1
    ?
    encore plus bizarre: après avoir demandé que l'utilisateur entre un caractère correspondant à un chiffre, tu fais un " switch case" comme si l'utilisateur avait rentré un caractère correspondant à une opération.
    je te suggère de commencer par des exercices plus simples.
    0
    1. abdinelickd Messages postés 2 Statut Membre
       
      ok bien recu mais si possible j'aimerai que tu me donne quelque solution
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > abdinelickd Messages postés 2 Statut Membre
         
        bonsoir, tu écris "bien reçu", alors qu'il me semble que tu ne fais rien avec ce que tu as reçu. je me trompe?
        tu as écrit au départ "je veux ecrire un programme", as-tu changé d'avis?
        0
  2. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonjour,

    Ligne 11 : le scanf récupère dans op un caractère car %c (pas un entier)
    Ligne 12 : il faut comparer à un caractère, ici ça serait op=='1' || op=='2' || op=='3' || op=='4'
    Le switch : là tu compares bien à des caractères '*' '-' '+' '/' par les cases, mais tu as demandé de saisir un caractère correspondant à un chiffre '1' '2' '3' ou '4'.
    Est-ce plus clair?
    0