解题思路:
采用二分查找
实现代码:
菜单部分实现:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int Menu() {
printf("==========\n");
printf("1.开始游戏\n");
printf("2.结束游戏\n");
printf("==========\n");
int choice = 0;
printf("请输入选择:");
scanf("%d", &choice);
return choice;
}
猜数字具体函数实现:
void Game() {
srand(time(0));
int random_number = rand() % 100 + 1; //获取随机数,并且范围在 [1,100]
int input = 0;
while (1) {
printf("请输入一个在[1,100]范围内的数:");//提示用户输入数据
scanf("%d", &input);
if (input > random_number) { //输入大于随机数
printf("猜大了\n");
}
else if (input < random_number) { //输入小于随机数
printf("猜小了\n");
}
else { //输入刚好等于随机数,跳出循环
printf("猜对了\n");
break;
}
}
}
测试实现:
int main() {
while (1) {
int choice = Menu();
if (choice == 1){
//开始游戏,进入Game函数
Game();
}
else if (choice == 2) {
//结束游戏
printf("游戏结束");
break;
}
else {
printf("输入非法\n");
}
}
return 0;
}