Utilisation de l'interrupteur avec le numéro de cas et le char cas

Je veux faire une switch boucle.

Si l'entrée est à partir de 1 à 5. Il permet d'imprimer un nombre. Il aurait l'impression "this is not a number". Et si l'entrée est 'e'. Le switch boucle doit être terminé.

Je peux faire le nombre, mais je ne sais pas comment puis-je faire d'entrée avec 'e'. Il ne veut tout simplement pas lire. Voici mon code:

int main() {
int i,a = 0;
printf("Write something:");
scanf("%d", &i);
    do{
    switch (i)
    {
    case 1:
        printf("1");
        break;
    case 2:
        printf("2");
        break;
    case 3:
        printf("3");
        break;
    case 4:
        printf("4");
        break;
    case 5:
        printf("5");
        break;
    case 'e':
        a=1;
        break;
    default:
        printf("This is not a number”); 
        break;
    }
}while (a==0);}

Mon problème est que je ne peux pas avoir d'entrée comme 'e' ou char. Parce que si je fais ça, je vais créer un paradoxe boucle ou ne pas travailler du tout. Où ai-je tort?

  • Pourquoi essayez-vous de mélanger des caractères et des nombres entiers dans le même (int) variable?
  • Et quel paradoxe de la boucle de l'est?
  • Je suppose que c'est ma débutant faute. L'exercice me dire de le faire affaires avec des chiffres et des char "e". Donc j'ai un peu perdu ici, et j'essaie comme ça...
  • Quand je fais une boucle qui n'a pas de fin. Il ne sera pas arrêter de courir jusqu'à prendre toute la mémoire. Pour moi, avec ce code: Il garde l'impression de "Ce n'est pas un nombre" des milliers de fois.