Correction de switch variable comprise entre x et y

Résolu
Bonjour,
Je suis débutant en c et je veux que vous me corriger ce programme;merci d'avance:

/*Salaire*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main(){
float impot,SB;
//SB=Salaire Brut impot=Impôts à payer
printf("Ce programme permet le calcul de votre salair brut\n");
printf("Veuillez entrez votre salaire\n");
scanf("%f",&SB);
//Les impôts à payer se calculent selon les règles suivants:
switch (SB){
case <1500 : {
impoy=SB;
printf("Les impôts à payer sont : %f",impot);
break;
}
case 1500<=SB<5000 : {
impot=SB*15/100;
printf("Les impôts à payer sont : %f",impot);
break;
}
default : {
impot=750+(40/100)(SB-3000)
printf("Les impôts à payer sont : %f",impot)
}
}
getch;
}

3 réponses

  1. Bonsoir,

    1- l'instruction "switch" ne peut pas être utilisée avec les float.
    tu peux comme même l'utiliser avec des Integer ou des Caracter.

    2- les "case" sont des "constant", alors elles doivent être des valeurs (1, 2, 'a', 'b'...) mais pas des intervalles.

    3- quelque point-virgule sont à ajouter pour que le programme fonctionne bien.

    bonne chance
    1. Mrc bcp walidovich_85 ce m'était vraiment très utile,
      mais est-ce que tu peux m'aider à résoudre cet exercice:
      Ecrivez un programme 'impots' qui, à partir du salaire brut d'un employé détérmine l'impôt à payer sachant que les règles de calcul des impots sont les suivants:
      //SB=Salaire Brut i=impôts à payer
      ==========================>>>>>>
      SB<1500 =================> i=0
      1500<=SB<3000 ===========> i=15%*SB
      3000<=SB<5000 ===========> i=450+(30%*SB)
      5000<SB =================> i=750+(40%*SB)
      Mrc d'avance
  2. Bonsoir,

    c'est parce que t'es venu déja avec un script que je vais te proposer un autre.

    #include<stdio.h>
    #include<conio.h>

    int main(){
    float impot, SB;
    //SB=Salaire Brut impot=Impôts à payer
    printf("Ce programme permet le calcul de votre salair brut\n");
    printf("Veuillez entrez votre salaire\n");
    scanf("%f",&SB);
    //Les impôts à payer se calculent selon les règles suivants:
    if(SB<1500)
    {
    impot=0;
    }
    else if(SB>=1500 && SB<3000)
    {
    impot=(15*SB)/100;
    }else if(SB>=3000 && SB<5000)
    {
    impot= 450 +(30*SB)/100;
    }
    else if(SB>=5000)
    {
    impot= 750 +(40*SB)/100;
    }
    printf("\nVous impots = %f",impot);
    getch();
    return 0;
    }

    le return 0 à la fin peut etre non nécessaire (dépend de ton IDE).

    Bonne chance
    1. Merci infiniment je te remerci beaucoup ce m'a vraiment aidé
      Mrc bcp mon ami
    2. avec plaisir.
      tu peut marquer le sujet comme résolu, pour une meilleur lisibilité pour les autres internautes.
    3. Comment avoir juste 2 nombres après la virgule SVP
    4. Contributeur
      Walidovich_85,
      Il n'y a pas besoin de tester la borne inférieue puisque tu es dans un else...
      De plus le return 0 ne dépend absolument pas de l'IDE. Il est obligatoire (sauf dans la dernière norme du C).
      En revanche getch () n'est pas standard.
    5. Mrc bcp pour ton aide