要求:
1.电脑自动生成1~100的随机数字
2.玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈
rand函数的介绍
rand函数会返回一个随机数,这个随机数在0~RAND_MAX之间,大部分编译器RAND_MAX=32767 //rand一定要包含头文件#include <stdlib.h> int main() { printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); return 0; } 生成: 41 18467 6334 26500 19169 这个生成的随机数如果不作调整,这个随机值一直都是这几样 真正的随机数是你永远不知道下一个数是啥 rand函数值对一个叫“种子”的基准值进行运算生成不同的随机数,之所以之前生成的随机数都是一样的,因为rand默认的种子是1 如果要生成不同的随机数,就要让种子是变化的 C语言提供一个函数---srand,,用来初始化随机数的生成器--种子 程序中在调⽤ rand 函数之前先调⽤ srand 函数,通过 srand 函数的参数seed来设置rand函数⽣成随机数的时候的种⼦,只要种⼦在变化,每次⽣成的随机数序列也就变化起来了 int main() { srand(2); //括号内即是种子 printf("%d\n", rand()); 时间戳的运用: int main() { srand((unsigned int)time(NULL)); //时间戳在变化,随机数也在变化 printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); return 0; } 如果想生成0~99的随机数,方法如下: rand() %100//余数的范围是0~99 如果想生成1~100的随机数,方法如下 所以rand() %100+1//余数的范围是1~100 如果想生成0~99的随机数,方法如下: 100 + rand()%(200-100+1) 余数的范围是0~100,加100后就是100~200 如果要生成一个a~b的随机数,方法如下: a + rand()%(b-a+1)
time需要包含头文件time.h
游戏主题代码:
void menu()//void函数不需要返回,menu将函数体封装,将菜单独拎出来, { // 打印菜单 printf("********************************\n"); printf("********** 1. play *************\n"); printf("********** 0. exit *************\n"); printf("********************************\n"); } void game() { //1. 游戏的逻辑,生成随机数 int r = rand() % 100 + 1; //2. 猜数字 int guess = 0; while (1) { printf("轻猜数字"); scanf("%d", &guess); if (guess > r) //r就是随机生成的数字 { printf("猜大了\n"); } else if (guess < r) { printf("猜小了\n"); } else { printf("恭喜你,猜对了\n"); break; //猜对了,就直接停止 } } } int main() { int input = 0; //设置随机数的生成起点 //整个工程只用调用一次 srand((unsigned int )time(NULL)); do { menu();//想要使用菜单,直接通过menu调用 //选择 printf("请选择"); scanf("%d", &input); switch (input) { case 1: //玩游戏的逻辑 game(); break; case 0: printf("退出游戏\n"); break; default: printf("选择错误,重新选择\n"); break; } } while (input); //括号内放入input return 0; }