如何使用c语言玩猜数字游戏
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
bqq()
{
printf("*******************************************\n");
printf("*******************************************\n");
printf("******* 1进入游戏 2退出游戏 *********\n");
printf("*******************************************\n");
printf("*******************************************\n");
}
gmx()
{
//游戏实现
short y = rand() % 100 + 1;
short i,q,w=1;
printf("请输入你要猜的数字\n");
printf("你有五次机会\n");
for (q = 1; q <= 5; q++)
{
scanf("%hd", &i);
if (i < y)
printf("猜小了\n");
else if (i > y)
printf("猜大了\n");
else
printf("恭喜你猜对了\n");
if (w== 5)
{
printf("机会用完了游戏结束\n");
printf("正确的数字为%hd\n",y);
break;
}
else
w++;
}
}
int main()
{
//使⽤time函数的返回值设置种⼦
//因为srand的参数是unsigned int类型,我们将time函数的返回类型强制类型转换
srand((unsigned int)time(NULL));//初始化rand的种⼦
int n=0;
do
{
bqq();
scanf("%d", &n);
switch (n)
{
case 1:
gmx();
break;
case 0:
printf("退出游戏成功");
break;
default:
printf("选择错误请重新选择\n");
printf("\a");
break;
}
} while (n);
return 0;
}
代码解释
C语⾔提供了⼀个函数叫 rand,这函数是可以⽣成随机数,但是生成的伪随机数,rand函数是对⼀个叫“种⼦”的基准值进⾏运算⽣成的随机数,要想生成真正的随机数要前⾯每次运⾏程序产⽣的随机数序列都不一样,因为rand函数⽣成随机数的默认种⼦是1,想要更改一个叫“种⼦”的基准值,C语⾔中⼜提供了⼀个函数叫 srand就是更改“种⼦”的基准值
time
如果 timer传NULL,就只返回这个时间的差值。time函数返回的这个时间差也被叫做:时间戳
时间戳
time 函数会返回当前的⽇历时间,其实返回的是1970年1⽉1⽇0时0分0秒到现在程序运⾏时间之间的
差值,单位是秒,返回的类型是time_t类型的,time_t 类型本质上其实就是32位或者64位的整型类
型
time传一个空指针意思就是给我返回时间戳(不需要做其他的操作),然后将time_t类型强制类型转换成srand一样的类型(无符号位整形)(time类型也是整形)从而更改了rand种⼦”的基准值,rand就可以去生成真正的随机值
头文件
使用rand函数头文件<stdlid.h>
使用time函数头文件<time.h>
使用printf,scanf函数头文件<stdio.h>
以上解释均为自己的理解如有不对请原谅