Code

Fermé
abdinelickd Messages postés 2 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 9 février 2017 - Modifié par baladur13 le 8/02/2017 à 22:08
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 10 févr. 2017 à 14:40
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.
A voir également:

2 réponses

yg_be Messages postés 23301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024 Ambassadeur 1 549
8 févr. 2017 à 22:18
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
abdinelickd Messages postés 2 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 9 février 2017
9 févr. 2017 à 15:24
ok bien recu mais si possible j'aimerai que tu me donne quelque solution
0
yg_be Messages postés 23301 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 30 octobre 2024 1 549 > abdinelickd Messages postés 2 Date d'inscription mercredi 8 février 2017 Statut Membre Dernière intervention 9 février 2017
9 févr. 2017 à 19:32
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
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
9 févr. 2017 à 20:40
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
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
Modifié par [Dal] le 10/02/2017 à 14:41
je crois que notre ami abdinelickd a eu plein d'explications :

https://forums.commentcamarche.net/forum/affich-34347458-code-erroner#1
0