Correction de switch variable comprise entre x et y

Résolu
SIMO97 Messages postés 83 Statut Membre -  
SIMO97 Messages postés 83 Statut Membre -
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. walidovich_85 Messages postés 698 Statut Membre 73
     
    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
    1. SIMO97 Messages postés 83 Statut Membre 5
       
      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
      0
  2. walidovich_85 Messages postés 698 Statut Membre 73
     
    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
    1. SIMO97 Messages postés 83 Statut Membre 5
       
      Merci infiniment je te remerci beaucoup ce m'a vraiment aidé
      Mrc bcp mon ami
      0
    2. walidovich_85 Messages postés 698 Statut Membre 73
       
      avec plaisir.
      tu peut marquer le sujet comme résolu, pour une meilleur lisibilité pour les autres internautes.
      0
    3. SIMO97 Messages postés 83 Statut Membre 5
       
      Comment avoir juste 2 nombres après la virgule SVP
      0
    4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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.
      0
    5. SIMO97 Messages postés 83 Statut Membre 5
       
      Mrc bcp pour ton aide
      0
  3. walidovich_85 Messages postés 698 Statut Membre 73
     
    printf("\nVous impots = %.2f",impot);
    1
    1. SIMO97 Messages postés 83 Statut Membre 5
       
      Mrc bcp mon ami
      0