Probleme debutant Dev c++ fonction switch

Résolu
Bonjour,
je ne sais pas comment utiliser la fonction switch quelqun pourrait -il mexpliquer et corriger ce programme svp
#include<stdio.h>
int main()
{
int a ;
int b ;
int f ;
char d ;

printf("Saisissez une valeur!");
scanf("%d",&a);
printf("Saisissez une autre valeur!");
scanf("%d",&b);
printf("Quelle opérations voulez vous effectuez?");
scanf("%u",&d);
switch(d) {
case + :{f=a+b} break;
case - :{f=a-b} break;
case * :{f=a*b} break;
case / :{f=a/b) break;
printf("Le resultat est %d",f)

return 0;
}
Configuration: Windows XP
Firefox 2.0.0.9

10 réponses

  1. #include<stdio.h>

    int main()

    {

    //rélaisé par Karim Boumaiza

    printf("///////////////////////\n");
    printf("une simple calculatrice\n");
    printf("///////////////////////\n\n\n\n");

    int a,b; char operation ;

    x:; //boucle infinie

    scanf("%d%s%d",&a,&operation,&b);

    switch(operation)

    {

    case '+':printf("resultat=%d",(long)a+b);
    printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

    case '-':printf("resultat=%d",a-b);
    printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

    case '*':printf("resultat=%d",(long)a*b);
    printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

    case '/':printf("resultat=%0.2f",(float)a/(float)b);
    printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

    case '%':printf("resultat=%d",a%b);
    printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

    default :printf("error d'ecriture!\n\n");
    printf("Essayez a nouveau!");
    printf("\n\n\n\n\n-------------------\n\n\n\n\n"); goto x;break;

    }

    getch();

    }
    0
    1. Contributeur
      Quelle horreur ce code !
      0
  2. slt je suis un débuton et je débute malle alore je voudré savoire ou je pouré trouvé les comande de dev-c++ pour comancé a programé
    0
    1. salut,

      dis toi que a force d'ecrire du code source bien comme il faut sans syntaxe d'erreurs comme des ; manquant tu pourra t'ameliorer.

      quand tu utilise des caracteres certainement il faut mettre ces variables entre '' => quote simple
      Attention quand tu rentres des valeurs avec scanf tu fais entrée. Ceci implique le caractere retour chariot.
      donc tu ne pas mettre ton saisie de caractere apres un autre scanf.

      #include<stdio.h>
      int main()
      {
      int a ;
      int b ;
      int f ;
      char d ;
      printf("Entrer l'operation que vous voulez effectuer : ");
      d = getchar();//ou scanf(%c",&d)
      printf("Saisissez une valeur! : ");
      scanf("%d",&a);
      printf("Saisissez une autre valeur! : ");
      scanf("%d",&b);

      switch(d) {
      case '+' :f=a+b; break;
      case '-' :f=a-b; break;
      case '*' :f=a*b; break;
      case '/' :f=a/b; break;
      }
      printf("Le resultat est : %d\n",f);

      return 0;
      }

      aller ciao
      0
      1. LOl merci beaucoup ca marche ouf grand merci
        0
        1. oui c'est possible il faut modifier un peu le switch et remplacer le scanf par un getch()

          voila ce que ça donne

          #include <stdio.h>
          #include <stdlib.h>
          
          int main()
          {
          int a ;
          int b ;
          int f ;
          char choix ;
          
          printf("Saisissez une valeur! ");
          scanf("%d",&a);
          printf("Saisissez une autre valeur! ");
          scanf("%d",&b);
          printf("\n");
          printf("-----Operation possible--------\n");
          printf("1: addition\n");
          printf("2: soustraction\n");
          printf("3: multiplication\n");
          printf("4: division\n");
          printf("5: quitter le programme\n");
          printf("Quelle operations voulez vous effectuez? ");
          choix=getch();
          
          switch(choix) {
              case '+' :f=a+b; break;
              case '-' :f=a-b; break;
              case '*' :f=a*b; break;
              case '/' :f=a/b; break;
              case '5' :{printf("Au revoir\n"); exit(-1);} break;
              default : printf("vous n'avez pas selectionne une operation qui existe\n");}
          
              printf("Le resultat est %d\n",f);
              printf("\n");
              main();
          return 0;
          }
          
          0
          1. merci mype c t ca le code q j allai lui donner
            0
        2. Merci beaucoup , mais avec les + , - / * c'est pas possible?
          0
          1. voici comment on fait un switch:
            switch(choix){
            case 1: instruction1; break;
            case 2: instruction2; break;
            etc....
            default: instruction par default;
            }

            je te conseille de faire un menu avec des printf pour que ton programme soit plus claire
            voici ce que ça donne

            #include <stdio.h>
            #include <stdlib.h>
            
            int main()
            {
            int a ;
            int b ;
            int f ;
            int choix ;
            
            printf("Saisissez une valeur! ");
            scanf("%d",&a);
            printf("Saisissez une autre valeur! ");
            scanf("%d",&b);
            printf("\n");
            printf("-----Operation possible--------\n");
            printf("1: addition\n");
            printf("2: soustraction\n");
            printf("3: multiplication\n");
            printf("4: division\n");
            printf("5: quitter le programme\n");
            printf("Quelle opérations voulez vous effectuez? ");
            scanf("%d",&choix);
            
            switch(choix) {
                case 1 :f=a+b; break;
                case 2 :f=a-b; break;
                case 3 :f=a*b; break;
                case 4 :f=a/b; break;
                case 5 :{printf("Au revoir\n"); exit(-1);} break;
                default : printf("vous n'avez pas selectionne une operation qui existe\n");}
            
                printf("Le resultat est %d\n",f);
                printf("\n");
                main();
            return 0;
            }
            
            0
            1. oUI JAI FAIT CELA mais ca ne marche toujours pas

              #include<stdio.h>
              int main()
              {
              int a ;
              int b ;
              int f ;
              char d ;

              printf("Saisissez une valeur!");
              scanf("%d",&a);
              printf("Saisissez une autre valeur!");
              scanf("%d",&b);
              printf("Quelle opérations voulez vous effectuez?");
              scanf("%c",&d);
              switch(d) {
              case + :{f=a+b;} break;
              case - :{f=a-b;} break;
              case * :{f=a*b;} break;
              case / :{f=a/b;) break;
              printf("Le resultat est %d",f);

              return 0;
              }
              0
              1. non ton code est faux car les caractere +,-,*,/,sont de type char donc tu doi lire la variable d entant que %c ou %s
                0