要求:电脑随机生成一个数,用户猜数,如果猜小了,电脑提示猜小了,如果猜大了,电脑提示猜大了。如果相等,则猜数成功。
//猜数游戏 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<time.h> void menu() { printf("********************\n"); printf("******1---play******\n"); printf("******0---exit******\n"); printf("********************\n"); } void play() { int mynumber, yournumber; srand((unsigned)time(NULL)); mynumber = rand()%100; printf("Enter yournumber:\n"); scanf("%d", &yournumber); if (yournumber == mynumber) printf("猜对了!\n"); while (yournumber != mynumber) { if (yournumber > mynumber) printf("猜大了!\n"); else if (yournumber < mynumber) printf("猜小了!\n"); printf("Enter yournumber:>\n"); scanf("%d", &yournumber); if (yournumber == mynumber) printf("猜对了!\n"); } } int main() { //打印菜单供选择 //做出选择 //玩游戏函数 int s; do{ menu(); printf("请做出选择:>"); scanf("%d", &s); switch (s) { case 1:play();break; case 0:printf("退出游戏!\n"); break; default:printf("输入错误!\n"); break; } } while (s); system("pause"); return 0; }
代码思路:
- 首先打印菜单,让用户做出选择,是否玩游戏。
- 电脑随机生成一个数。
- 用户输入一个数。
- 判断两个数的大小,直到猜正确为止。
- 选择是否继续游戏。
重要知识点:
- 生成随机数
rand()是生成随机数的函数。——————该函数的的头文件是stdlib.h;
但是它是按照指定的顺序产生整数,因此每次运行都是同样的值。又称为伪随机数。
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int i=0; while (i < 6) { printf("%d\n", rand()); i++; } system("pause"); return 0; }
第一次运行:
第二次运行:
- 所以为了使程序在每次执行时都可以产生新的随机值,我们通常通过伪随机数生成器提供一粒新的随机种子。函数srand()可以为随机数生成器传播种子。只要种子不同rand()就会产生不同的随机数序列。
- srand函数是随机数发生器的初始化函数。原型是:void srand(unsigned int seed)和rand()配合使用产生伪随机数序列。srand()为rand()函数提供种子,即:种子相同,那么生成的随机数每次也都相同。
eg:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> int main() { int i=0; int n = 10; srand((unsigned)n); while (i < 6) { printf("%d\n", rand()); i++; } system("pause"); return 0; }
第一次运行:
扫描二维码关注公众号,回复:
1048204 查看本文章
第二次运行:
- 所以不应该选择一个固定的数作为种子,时间每分每秒都在变化,所以通常以时间作为种子,生成的随机数会变化。
- 语句为:srand(unsigned time(NULL));