我正在尝试使用一个程序来猜测用户正在考虑的数字,但是它目前每次只输出默认的切换操作。请告诉我我做错了什么?谢谢!
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;
}
答案 0 :(得分:3)
letternum
是一个整数,您的switch语句使用字符(例如&#39; 1&#39;),只需从案例表达式中的字符中删除引号:
switch(letternum){
case 1:
等...
答案 1 :(得分:1)
因为你的开关标签是字符,但你的letternum是一个int,所以它们不匹配。