刚学完分支循环语句,来做一个猜数字游戏的练习
一、游戏菜单
定义了一个没有返回值的无参函数men,来存放游戏菜单代码。
//游戏菜单界面
void men()
{
printf("********************\n");
printf("*******1、play******\n");
printf("*******2、quit******\n");
printf("********************\n");
}
二、游戏主要功能
2.1、生成随机数
定义了一个game函数,来实现猜数字游戏的功能。
第一个问题是产生一个随机数的问题,C语言提供了rand函数来生成随机数。使用rand函数时要包含<stdlib.h>头文件,rand返回0~RAND_MAX之间的数,RAND_MAX的大小依赖编译器的定义。
但当我们用rand函数时,发现两次生成的随机数一样
#include<stdio.h>
int main()
{
int a =0;
a=rand();
printf("%d",a);
}
因为rand函数生成随机数是根据一个叫“种子”的基数来运算生成随机数的,种子默认是1。
所以使用rand函数之前要用srand函数来初始化这个种子。
srand的函数定义(转载于:月过枫):
viod srand(unsigned int seed);
要通过seed这个参数来设置rand函数生成随机数的种子。
我们用时间作为参数来赋值给srand函数。
C语言给了一个获得时间戳的函数time,使用time函数要包含<time.h>头文件。
time_t time(time_t timer);
time_t是一个长长整形类型的返回值,参数是一个指针。
生成随机数代码为:
#include <stdlib.h>
#include <time.h>
viod game()
{
int a = 0;
srand((unsignedint)time(NULL));
//生成0~100之间的数
a=rand()%100+1;
}
2.2、猜数字对比
猜的数字大了,提示猜大了,猜的数字小了,提示猜小了,猜对,提示恭喜你猜对了,还要继续玩吗。因为猜不对要一直猜,所以需要将猜数字的代码放于while循环里。
while(1)
{
printf("请输入要猜的数:");
scanf("%d", &b);
if (a > b)
printf("猜小了\n");
else{
if (a < b)
printf("猜大了\n");
else{
printf("恭喜你猜对了,还要继续玩吗。\n");
break;
}
}
}
以上就是我们对代码的实现过程。