猜数字游戏的实现
- 1.电脑生成随机数1~100
- 2.猜数字
- 3.告知猜大了还是猜小了
无论玩不玩游戏我们都要打印一个菜单选择玩还是不玩,所以采用do...while循环
接下来实现游戏:(难点是电脑生成随机数)
电脑生成随机数:
使用rand函数,生成随机数,使用rand函数之前,要先使用srand函数才能生成随机数,srand函数只要调用一次就可以生成随机数,所以在主函数中使用即可
使用srand函数的参数是要一直变化的数才能生成随机数,时间是一直变化的,引入时间戳,在C语言中,使用时间戳相当于C语言中的time函数
注意:
1.time的参数是指针类型,只需写入NULL即可,
2.srand函数的参数的类型是unsigned int类型,而time函数的类型是time_t类型,所以要将time强制类型转换为unsigned int类型
3.要求是随机生成1~100之间的随机数,而rand函数生成随机数的范围是0到RAND_MAX之间,所以rand函数要%100+1(任何数%100都是0~99的数,+1范围便是1~100)
代码的实现:
#include#include #include void menu() { printf("********************n"); printf("****** 1.play ******n"); printf("****** 0.exit ******n"); printf("********************n"); } void game() { int guess = 0; //生成随机数 int ret = rand() % 100 + 1; //printf("%dn", ret); //猜数字 while (1) { printf("请猜数字:>n"); scanf("%d", &guess); if (guess > ret) { printf("猜大了n"); } else if (guess < ret) { printf("猜小了n"); } else { printf("恭喜你,猜对了n"); break; } } } int main() { int input = 0; srand((unsigned int)time(NULL)); do { menu(); printf("请选择:>n"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: printf("退出游戏n"); break; } } while(input); }



