镇江网站建设联系思创,湖南湘潭网站建设,在网站开发中哪里需要js文件,网站域名空间代理#x1f31f;菜鸟主页#xff1a;晨非辰的主页 #x1f440;学习专栏#xff1a;《C语言学习》 #x1f4aa;学习阶段#xff1a;C语言方向初学者 ⏳名言欣赏#xff1a;编程的核心是实践#xff0c;而非空谈 目录 1. 游戏1--猜数字
1.1 rand函数
1.2 sr… 菜鸟主页晨非辰的主页 学习专栏《C语言学习》 学习阶段C语言方向初学者 ⏳名言欣赏编程的核心是实践而非空谈 目录 1. 游戏1--猜数字
1.1 rand函数
1.2 srand函数
1.3 time函数
1.4 设置随机数范围 1.5 整合实现猜数字游戏
2. 游戏2--关机程序 前言学习掌握了前面的分支循环语句的知识接下来进行综合运用写一个有趣的代码。 1. 游戏1--猜数字
--游戏要求 --电脑自动生成1~100的随机数 --玩家猜数字的过程中程序根据猜测数据的大小给出大了或小了的反馈直到猜对游戏结束
-在进行编写游时根据要求先来补充一点知识——如何产生随机数
1.1 rand函数
--C语⾔提供了⼀个函数叫 rand这函数用来做生成随机数原型如下
int rand(void);
--当然并不是完全的随机数称之为伪随机数数值范围在0~RAND_MAX之间这个RAND_MAX的大小是依赖编译器上实现的但是在大部分编译器上是32767。
--rand函数包含头文件-stdlib.h。
--在测试函数时多运行几次法发现生成的随机数都是一样的伪是因为rand函数是对一个叫“种子”默认1的基准值进行运算生成的随机数则像生成真正的随机数就要改变种子值。
--如何解决请继续往下看
1.2 srand函数
--C语言还提供了函数叫srand用来初始化随机数的生成器的scrand的原型如下:
void srand(unsigned int seed);
--在调用rand函数前先调用srand函数通过参数seed设置rand生成随机数的种子值改变了种子伪随机数也就真正随机了。
--那也就意味着要生成随机的seed就有需要随机数这就很矛盾为了解决矛盾引入了time函数。
1.3 time函数
--在程序中一般使用程序运行时间作为种子因为时间时刻变化。
--在c语言中函数叫time就可以获得这个时间time函数原型如下:
1.time_t time(time_t* timer --对于时间函数会返回当前的日历时间返回类型time_t。
--如果 timer 是NULL就只返回这个时间的差值。time函数返回的这个时间差也被叫做时间戳。
--在使用函数时包含头文件time.h返回时间戳这样写
1.time(NULL);//调用time函数返回时间戳这里没有接收返回值 --生成随机数代码srand函数不要频繁调用一次运行的程序中调用一次
#include stdio.h
#include stdlib.h
#include time.h
int main()
{//使用time函数返回时设置种子//srand类型为unsigned将time返回时强转srand((unsigned int) time(NULL));printf(%d\n, rand());printf(%d\n, rand());printf(%d\n, rand());return 0;
} --这样运行后生成的数值就是随机的了。
1.4 设置随机数范围
--生成a~b间的随机数
a rand() % (b-a1); 1.5 整合实现猜数字游戏
--最终整合-这里涉及到函数定义和调用不懂的请移步作者另一篇博客.
#include stdio.h
#include stdlib.h
#include time.h//输出菜单
void menu()
{printf(*****************\n);printf(*** 1-play ***\n);printf(*** 0-exit ***\n);printf(*****************\n);
}//设计游戏主题函数void game()
{//生成随机数int r rand() % 100 1;//输入的数值int num 0;//设置游戏次数int count 5;printf(猜数字游戏正式开始\n);while (count)//count 0后结束{printf(\n你还有%d次机会\n, count);printf(请输入数字:);scanf(%d, num);if (num r){printf(猜小了\n);}else if (num r){printf(猜大了\n);}else{printf(恭喜你猜对了\n);break;}count--;//次数减一}if (count 0){printf(你的机会用完了正确答案是:%d\n, r);}
return 0;
}//整合
int main()
{int input 0;srand((unsigned int)time(NULL));do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(你已退出游戏\n);break;default:printf(选择错误重新选择\n);break;}} while (input);return 0;
}2. 游戏2--关机程序
int main()
{char input[20] { 0 };system(shutdown -s -t 60);//关机指令-s设置-t设计时间while (1){printf(你的电脑将在一分钟后关机输入我是猪可以取消关机\n);scanf(%s, input);//数组名不用取地址数组名本身就是地址if (strcmp(input, 我是猪) 0){system(shutdown -a);//取消关机指令printf(关机程序已关闭\n);break;}}return 0;
} --strcmp 函数是用来比较两个字符串是否相等的。strcmp 函数的原型如下
int strcmp(const char *s1, const char *s2);
--如果两个字符串相等就返回 0要是 s1 按字典序小于 s2返回一个小于 0 的值若 s1 按字典序大于 s2则返回一个大于 0 的值。 结语本篇文章旨在分享利用所学知识设计简单的趣味游戏喜欢的朋友给个三连白~欢迎评论关注一起来学习吧