0

ユーザーが考えている数字を推測するプログラムを動作させようとしていますが、現在のところ、毎回デフォルトのスイッチ アクションしか出力しません。私が間違ったことを教えてください。ありがとうございました!

srand(time(0));
int lowernum = 1;
int highernum = 1000;
int number=rand()%highernum + lowernum;
string letter = "";
int letternum = 0;

cout<<"\nOkay, think of a number between one and 1000 
and I will try to guess it!\n";
cout<<"\nIs your number higher (h), lower (l) 
or exactly (e): " << number << "\n";
cin>>letter;

if (letter == "h")
{
    letternum = 1;
}
else if (letter == "l")
{
    letternum = 2;
}
else if (letter == "e")
{
    letternum = 3;
}

switch(letternum){
case'1': highernum = number; cout<<"\nIs your number higher (h), 
lower (l) or exactly (e): " << number << "\n"; cin>>letter;
    break;
case'2': lowernum = number; cout<<"\nIs your number higher (h), 
lower (l) or exactly (e): " << number << "\n"; cin>>letter;
    break;
case'3': cout<<"\nWahoooooo! I win! :D\n";
    break;
default:cout<<"\nI don't understand what you just typed in.\n";
    break;

}
4

2 に答える 2

3

letternumが整数の場合、switch ステートメントで文字 (「1」など) を使用している場合は、case 式の文字から引用符を削除するだけです。

switch(letternum){
case 1: 

等...

于 2012-10-22T22:28:37.740 に答える
1

スイッチ ラベルは char ですが、letternum は int であるため、一致しません。

于 2012-10-22T22:29:01.727 に答える