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
Vous devez vous connecter pour publier un commentaire.
Si la taille peut être plus qu'un seul et même personnage, alors vous aurez besoin de la représenter avec une chaîne. Vous ne pouvez pas
switch
sur une chaîne, de sorte que vous aurez à utiliserif..else..else..
traiter la valeur:Si c'était un seul et même personnage, alors vous pouvez utiliser
char
(pasint
) pour la représenter:mais pour plusieurs personnages, vous aurez besoin d'une chaîne.
OriginalL'auteur Mike Seymour
switch
déclaration peut gérerint
etchar
en C++.char
type de données peut contenir qu'une seule lettre. Ainsi, si vous saisissez une seule lettre (X
) pour la taille XL seront bien ...OriginalL'auteur Tun Zarni Kyaw
Vous avez déclaré
s
comme un entier, mais tenter de l'utiliser comme un caractère et un tableau de caractères. Vous devriez probablement déclarer qu'il estchar s;
et ensuite l'utiliser de manière cohérente comme un seul caractère, ce qui signifie que vous ne pouvez pas vérifier pourXL
. Vous pouvez, cependant, il suffit de cocher pourX
dans votre commutateur.Si vous devez absolument vérifier
XL
, alors vous aurez besoin d'utiliser un tableau de caractères oustd::string
, bien que les instructions switch peut être utilisé uniquement avec des caractères uniques, de sorte que vous peut-être le nid de votre commutateur de vérifier pour de multiples personnages, ou tout simplement utiliser une série deif (strncmp(...)...)
appels.OriginalL'auteur patrickvacek