IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

switch case en c


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Par défaut switch case en c
    Bonjour

    Je dois faire un programme qui repond a cet énoncé :

    Demande l'âge de l'utilisateur et affiche sa catégorie :
    -Poussin : 6-7 ans
    -Pupille : 8-9 ans
    -Minime : 10-11 ans
    -Cadet : 12+
    -Pas de catégorie : 5 ans et -

    J'ai réussi a le faire avec des si ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    // Ce programme demande l'age de l'utilisateur et lui affiche sa categorie
     
    #include "stdafx.h"
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int age = 0;
    	printf("Quel est votre age ?\n");
    	scanf_s("%d", &age);
     
     
    		if (age<=7 && age>=6)
    		{
    			printf("Vous faites parti de la categorie Poussin\n");
    		}
    		else 
    		{
    			if (age<=9 && age>=8)
    			{
    				printf("Vous faites parti de la categorie Pupille\n");
    			}
    			else
    			{
     
    				if (age<=11 && age>=10)
    				{
    					printf("Vous faites parti de la categorie Minime\n");
    				}
    				else
    				{
    					if (age>=12)
    					{
    						printf("Vous faites parti de la categorie Cadet\n");
    					}
    					else 
    					{
    						if (age<6)
    						{
    						printf("Vous ne faites parti d'aucune categorie\n");
    						}
    					}
    				}
    			}
    		}
     
    	return 0;
    }
    Par contre je n'arrive pas a le faire avec un switch, pour l'instant j'ai fais ça mais ca ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    // TP1_Pb3.cpp*: définit le point d'entrée pour l'application console.
    // Ce programme demande l'age de l'utilisateur puis lui affiche sa catégorie
     
    #include "stdafx.h"
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int age = 0;
    	int categorie=0;
    	printf("Quel est votre age ?\n");
    	scanf_s("%d", &age);
     
    	switch (categorie)
    	{
     
    	case 1:
    		if (age<=7 && age>=6)
    		{
    			printf("Vous faites parti de la categorie Poussin\n");
    		}
    		break;
     
    	case 2:
    		if (age<=9 && age>=8)
    		{
    			printf("Vous faites parti de la categorie Pupille\n");
    		}
    		break;
     
    	case 3:
    		if (age<=11 && age>=10)
    		{
    			printf("Vous faites parti de la categorie Minime\n");
    		}
    		break;
     
    	case 4:
    		if (age>=12)
    		{
    			printf("Vous faites parti de la categorie Cadet\n");
    		}
    		break;
     
    	default:
    		if (age<=6)
    		{
    			printf("Vous ne faites parti d'aucune categorie\n");
    		}
    		break;
    	}
     
    	return 0;
    }
    Quelles sont mes erreurs ? Comment faire pour répondre a l'énoncé avec un switch ?


    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Par défaut
    Bonjour,

    Ici le switch est sur categorie, il faut donc qu'elle soit déjà déterminée au moment du switch.
    Dans le présent programme : int catégorie=0;
    Donc on sera toujours dans case 0: ou default !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Par défaut
    a ok,

    Du coup j'ai modifié mon code mais j'ai encore un problème, je ne sais pas comment gérer le 12 ans et +
    Y a il une solution plus simple que de rajouter un truc genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    case 12:
    case 13:
    case 14:
    ...

    pour l'intant voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    // TP1_Pb3.cpp*: définit le point d'entrée pour l'application console.
    // Ce programme demande l'age de l'utilisateur puis lui affiche sa catégorie
     
    #include "stdafx.h"
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int age = 0;
    	printf("Quel est votre age ?\n");
    	scanf_s("%d", &age);
     
    	switch (age)
    	{
     
    	case 6:
    	case 7:
    		printf("Vous faites parti de la categorie Poussin\n");
    		break;
     
    	case 8:
    	case 9:
    		printf("Vous faites parti de la categorie Pupille\n");
    		break;
     
    	case 10:
    	case 11:
    		printf("Vous faites parti de la categorie Minime\n");
    		break;
     
    	case 12:
    		printf("Vous faites parti de la categorie Cadet\n");
    		break;
     
    	default:
    		printf("Vous ne faites parti d'aucune categorie\n");
    		break;
    	}
     
    	return 0;
    }

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Tu pourrais créer des cases 0 à 5 avec un résultat du type "trop jeune".

    Ainsi le default pourrait être affecté aux +12.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 42
    Par défaut
    a c'est pas con

    merci

    Je vais faire comme ça mais il n'y a pas d'autres solutions ?

    edit : mon code marche nickel

    voilà du coup mon code final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    // TP1_Pb3.cpp*: définit le point d'entrée pour l'application console.
    // Ce programme demande l'age de l'utilisateur puis lui affiche sa catégorie
     
    #include "stdafx.h"
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int age = 0;
    	printf("Quel est votre age ?\n");
    	scanf_s("%d", &age);
     
    	switch (age)
    	{
     
     
    	case 0:
    	case 1:
    	case 2:
    	case 3:
    	case 4:
    	case 5:
    		printf("Vous ne faites parti d'aucune categorie\n");
    		break;
     
    	case 6:
    	case 7:
    		printf("Vous faites parti de la categorie Poussin\n");
    		break;
     
    	case 8:
    	case 9:
    		printf("Vous faites parti de la categorie Pupille\n");
    		break;
     
    	case 10:
    	case 11:
    		printf("Vous faites parti de la categorie Minime\n");
    		break;
     
     
    	default:
    		printf("Vous faites parti de la categorie Cadet\n");
    		break;
    	}
    	return 0;
    }
    si vous avez une autre solution pour faire ce programme avec un switch je veux bien savoir comment faire par curiosité

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par tib44 Voir le message
    a c'est pas con

    merci

    Je vais faire comme ça mais il n'y a pas d'autres solutions ?

    edit : mon code marche nickel
    Il y a peut être d'autres moyens de faire. Maintenant l'avantage d'un switch(); est que ca rend le code bien plus lisible.

    Pendant que j'y suis tu devrais borner age. Imagines que l'utilisateur entre -5 !

Discussions similaires

  1. [Language]Probleme de switch case
    Par nana1 dans le forum Langage
    Réponses: 20
    Dernier message: 17/11/2005, 00h49
  2. switch case pour deux variable en meme temps
    Par petitours dans le forum C
    Réponses: 3
    Dernier message: 06/11/2005, 19h20
  3. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 16h37
  4. probleme gestion condition switch - case
    Par DarkMax dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2005, 14h25
  5. [Language] aide sur les switch case
    Par pouss dans le forum Langage
    Réponses: 3
    Dernier message: 05/04/2005, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo