Le caractère dans l'Interrupteur de la Déclaration de C++

S'il vous plaît aider! Je ne peux pas produire la sortie de mon programme. C'est la condition:
Construire un programme qui donne un rabais de 100 pesos si le t-shirt acheté, est XL et la le prix est supérieur à 500; et une réduction de 50 pesos si le t-shirt acheté, est L, et le prix est supérieur à 600.

#include <iostream>
using namespace std;


int main()
{
    int p;
    int s;

    cout << "Input price: ";
    cin  >> p;
    cout << "Input size: ";
    cin  >> s;

switch (s)
{
case 'XL': case 'xl':
    {
        if (p>500){
            cout << "Total price: " << p-100 << " pesos.";
            break;
        }
        else if ((s=='XL' || s=='xl') && (p<500)){
            cout << "Total price: " << p << " pesos.";
            break;
        }
    }
case 'L': case 'l':
    {
        if (p>600){
            cout << "Total price: " << p-50 << " pesos.";
            break;
        }
        else if ((s=='XL' || s=='xl') && (p<600)){
            cout << "Total price: " << p << " pesos.";
            break;
        }
    }
case 'M': case 'm':
    {
        cout << "Total price: " << p << " pesos.";
        break;
    }
case 'S': case 's':
    {
        cout << "Total price: " << p << " pesos.";
        break;
    }
}

return 0;

}

La sortie du programme:

Input price: 500
Input size: XL

Process returned 0 (0x0)   execution time : 5.750 s
Press any key to continue.

P. S. Comment puis-je supprimer l'avertissement (multi-caractère caractère constant) dans mon programme?
Merci à l'avance!

Pourquoi ne pas faire la taille d'un enum et de basculer sur qui?

OriginalL'auteur Jemar Villareal | 2013-10-09