如何在C++猜数字游戏中添加区间提示并实现重复游玩功能
猜数字游戏代码修改方案
核心改动点
- 新增区间边界变量
low、high,初始值为0和100,每次猜测后动态更新区间并提示用户 - 新增外层循环控制游戏重开逻辑,猜中后询问用户是否重新开始,匹配输入指令即可重置游戏状态
完整修改代码
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(0)); char playAgain; // 外层循环控制重开逻辑 do { int num, guess, tries = 0; int low = 0, high = 100; // 初始区间 num = rand() % 100 + 1; cout << "猜数字游戏\n\n"; do { cout << "请输入" << low << "到" << high << "之间的猜测值: "; cin >> guess; tries++; if (guess > num) { cout << "过高!\n\n"; high = guess - 1; // 收窄上界 } else if (guess < num) { cout << "过低!\n\n"; low = guess + 1; // 收窄下界 } else { cout << "\n恭喜猜对!你总共猜了" << tries << "次!\n"; } } while (guess != num); // 询问是否重开 cout << "是否要重新开始游戏?输入y/Y继续,其他键退出: "; cin >> playAgain; cout << "\n"; } while (playAgain == 'y' || playAgain == 'Y'); cout << "游戏结束,感谢游玩!\n"; return 0; }
逻辑说明
- 区间收窄逻辑完全符合需求:如果猜测值小于目标数字,说明目标在猜测值+1到当前上界之间,更新下界;如果猜测值大于目标数字,说明目标在当前下界到猜测值-1之间,更新上界
- 重开逻辑通过外层do-while循环实现,每次重开都会重新生成目标数字、重置区间和猜测次数,不需要重启程序
内容的提问来源于stack exchange,提问作者Tristan Paton
相关产品推荐
相关产品推荐

