Code Calculatrice
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Code Calculatrice



  1. #1
    Yky1939

    Code Calculatrice


    ------

    Bonjour/Bonsoir
    J’ai tapé 2 codes sur C qui, normalement devraient donner le même résultat. J’ai été surpris quand le deuxième n’a pas marché. En faisant des recherches, j’ai vu qu’il fallait que j’ajoute getchar() avant de lire le signe d’opération.
    J’aimerais comprendre pourquoi utiliser getchar que dans le deuxième code.
    Voici les 2 codes :
    Code:
    #include<stdio.h>
    
    int main()
    {
    	int nb1,nb2;
    	char signe;
    	
    	printf("Entrez un opérateur\n");    //détermination de l'opérateur à utiliser
    	scanf("%c",&signe);
    	printf("Entrez un nombre\n");      //lecture des nombres
    	scanf("%d",&nb1);
    	printf("Entrez un autre nombre\n");
    	scanf("%d",&nb2);
    	
    	switch(signe)                      // évaluation des différents cas
    	{
    		case '+': printf("%d + %d = %d\n",nb1,nb2,nb1+nb2);
    		break;
    		case '-': printf("%d - %d = %d\n",nb1,nb2,nb1-nb2);
    		break;
    		case '*': printf("%d * %d = %d\n",nb1,nb2,nb1*nb2);
    		break;
    		case '/': if(nb2==0)
    			     printf("Division par zero interdit!");
    			     else
    				 printf("%d + %d = %d\n",nb1,nb2,nb1+nb2);
    				 break;
    		default: printf("Cet operateur n'exite pas\n" );
    			     
        }
        return 0;
    }
    
    #include<stdio.h>
    
    int main()
    {
    	int nb1,nb2;
    	char signe;
    
    	printf("Entrez un nombre\n");      //lecture des nombres
    	scanf("%d",&nb1);
    	printf("Entrez un autre nombre\n");
    	scanf("%d",&nb2);
            printf("Entrez un opérateur\n");    //détermination de l'opérateur à utiliser
    	scanf("%c",&signe);
    
    	
    	switch(signe)                      // évaluation des différents cas
    	{
    		case '+': printf("%d + %d = %d\n",nb1,nb2,nb1+nb2);
    		break;
    		case '-': printf("%d - %d = %d\n",nb1,nb2,nb1-nb2);
    		break;
    		case '*': printf("%d * %d = %d\n",nb1,nb2,nb1*nb2);
    		break;
    		case '/': if(nb2==0)
    			     printf("Division par zero interdit!");
    			     else
    				 printf("%d + %d = %d\n",nb1,nb2,nb1+nb2);
    				 break;
    		default: printf("Cet operateur n'exite pas\n" );
    			     
        }
        return 0;
    }

    -----
    Dernière modification par Jack ; 29/06/2023 à 11h33. Motif: Ajout balises code

  2. #2
    pm42

    Re : Code Calculatrice

    1) tu devrais utiliser les balises CODE pour que tes programmes soient formattés et lisibles
    2) il n'y a pas de getchar dans ton 2nd code
    3) tu as probablement un problème avec le fait que scanf laisse le retour chariot dans le buffer. Tu peux essayer avec un scanf("%c\n", &signe), etc.

  3. #3
    polo974

    Re : Code Calculatrice

    Le getchar bouffe le '\n' qui est resté dans le buffer lors du scanf précédent.
    Dans le premier cas, le buffer est vide, vu qu'il n'y a pas eu de saisie avant.
    Jusqu'ici tout va bien...

  4. #4
    Jack
    Modérateur

    Re : Code Calculatrice

    Citation Envoyé par pm42 Voir le message
    1) tu devrais utiliser les balises CODE pour que tes programmes soient formattés et lisibles
    En effet, d'autant plus que ce n'est pas la première fois que ça t'est rappelé.
    Relis les règles participatives pour savoir comment faire.
    Merci.

  5. A voir en vidéo sur Futura
  6. #5
    Yky1939

    Re : Code Calculatrice

    Je ne sais pas comment utiliser les balises CODE: je suis débutant. Vous pouvez me le dire peut-être! Cela me ferait plaisir.
    Merci.

  7. #6
    Deedee81

    Re : Code Calculatrice

    Salut,

    Citation Envoyé par Yky1939 Voir le message
    Je ne sais pas comment utiliser les balises CODE: je suis débutant. Vous pouvez me le dire peut-être! Cela me ferait plaisir.
    Merci.
    Fait "répondre avec citation" sur ton premier message, tu verras les balises que Jack a ajouté
    "Il ne suffit pas d'être persécuté pour être Galilée, encore faut-il avoir raison." (Gould)

  8. #7
    Jack
    Modérateur

    Re : Code Calculatrice

    Citation Envoyé par Yky1939 Voir le message
    Je ne sais pas comment utiliser les balises CODE: je suis débutant. Vous pouvez me le dire peut-être! Cela me ferait plaisir.
    Merci.
    Qu'est-ce que tu ne comprends pas dans
    En mode éditeur avancé, utiliser le bouton #.
    ?
    Le bouton "Aller en mode avancé" apparait pendant que tu édites ton message.
    Dernière modification par Jack ; 30/06/2023 à 12h27.

  9. #8
    Deedee81

    Re : Code Calculatrice

    Je suis bête, c'est en effet encore plus simple que ce que je conseillais
    "Il ne suffit pas d'être persécuté pour être Galilée, encore faut-il avoir raison." (Gould)

  10. #9
    Jack
    Modérateur

    Re : Code Calculatrice

    La redondance a du bon.

Discussions similaires

  1. [Divers] Réinitialisation code clavier à code S7000 / carte de commande S0002
    Par invite8a03a2d5 dans le forum Dépannage
    Réponses: 1
    Dernier message: 13/11/2019, 17h57
  2. Code::Blocks - Erreurs et incompréhensions d'un néophyte ( Code source Main.c )
    Par invite6b5527f3 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 12/12/2014, 16h28
  3. code vb 2008 pour code bouton eteindre ou allumer une lampe
    Par invite7c733226 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 16/02/2013, 21h44
  4. Un langage codé léger, 2 caractères non codé=1 caractère codé. Une solution?
    Par invite06e0b926 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 30/06/2010, 11h02