c语言猜数字游戏代码3次机会,c语言猜数字游戏编程
Yyds干货库存
目录
想法:
1.计算机产生一个随机数。
2.猜数字:a .猜大b .猜小c .猜对
分析:
菜单功能:
游戏功能:
1.生成随机数:
2.和srand函数:
游戏功能源代码:
源代码:
运行结果截图:
思路:1。计算机产生一个随机数。2.猜数字:a .猜大。b .猜小。猜对了。分析:菜单功能:void menu()
{
printf( # # # # # # # # # # # # # # # # # # # \ n );
printf( # # # # # # # # # 1 . play # # # # # # # # \ n );
printf(########0。退出# # # # # # # # # \ n );
}
游戏功能:1。生成随机数:a .需要调用rand函数。RAND () 0 1表示生成1到100之间的随机数。
原因:取任意数的余数到100的结果一定小于100,加1会产生一个100以内的随机数。
如果你不明白rand函数的概念,可以查一下:
编辑
B.从上图我们知道rand的随机范围是0到RAND_MAX,RAND_MAX是7fff(十六进制),换算成十进制就是32767。但是如果你只是这样设计,你会发现运行这个程序生成随机值后,关闭它再运行一次,你会发现两次运行对应的位置是随机相同的!
如下图:
编辑
C.如果每一轮对应位置的随机值都一样,可能和我们的预期不一样,需要再修改一遍!那修改什么?答案在上图:
编辑
是最后一句话:
在调用rand之前,使用srand函数为伪随机数发生器设定种子。
含义:在调用rand函数之前,应该先调用srand函数生成一个随机数生成器。
2.和srand函数:设置一个随机的起点。设置一个随机的起点。
它被称为:srand(无符号int seed)。这里要放一个矩变分,否则产生的随机值保持不变。
编辑
又有什么可以一直改变?答案不言而喻,是时候了。
你如何输入时间?那么我们需要明白一个概念:时间戳。
编辑
在C语言中,有一个函数可以输出时间戳:time函数。
编辑
所以scrand函数调用如下:srand((unsigned int)time(NULL));
而且这个调用应该写在主函数里,而不是游戏函数里,因为如果输入太快,两次随机值都是一样的:
编辑
游戏功能源代码:void game()
{
int guess=0;
int ret=rand()% 100 1;
printf(%d\n ,ret);
while (1)
{
printf(猜数字:);
scanf(%d ,猜测);
如果(猜ret)
{
printf(猜一个更大的!\ n’);
}
else if(猜ret)
{
printf(猜猜看!\ n’);
}
其他
{
printf(Find!\ n’);
打破;
}
}
}
源代码:# define _ CRT _ secure _ no _ warnings 1
#包含stdio.h
无效菜单()
{
printf( # # # # # # # # # # # # # # # # # # # \ n );
printf( # # # # # # # # # 1 . play # # # # # # # # \ n );
printf(########0。退出# # # # # # # # # \ n );
}
无效游戏()
{
int guess=0;
int ret=rand()% 100 1;
printf(%d\n ,ret);
while (1)
{
printf(猜数字:);
scanf(%d ,猜测);
如果(猜ret)
{
printf(猜一个更大的!\ n’);
}
else if(猜ret)
{
printf(猜猜看!\ n’);
}
其他
{
printf(Find!\ n’);
打破;
}
}
}
int main(void)
{
int input=0;
srand((无符号int)time(NULL));
做
{
menu();
printf(请选择:-
scanf(%d ,输入);
开关(输入)
{
案例一:游戏();
打破;
案例2:printf( EXIT \ n );
打破;
default:printf(选错了!再次选择!\ n’);
打破;
}
} while(输入);
返回0;
}
运行结果截图:
转载请联系作者取得授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。