#include<stdlib.h> //rand头文件
#include<time.h> //time头文件
//猜数字游戏
void menu()
{
printf("***************************\n");
printf("*** 1.paly 0.exit ***\n");
printf("***************************\n");
}
void game()
{
int ret = 0;
int guess = 0; //接收猜的数字
//拿时间戳来设置随机数的生成起始点
//用time来重定义time_t(time_t*time)类型为长整型.
ret = rand()%100+1; //生成1-100的随机数
//rand用于生成随机数,RAND_MAX=32767
while (1)
{
printf("请猜数字:");
scanf("%d", &guess);
if (ret < guess)
{
printf("猜大了\n");
}
else if(ret>guess)
{
printf("猜小了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
}
}
int main()
{
srand((unsigned int)time(NULL)); //srand为rand起始点,用time这个一直变化的量作为起始点来生成随机数,
//NULL为空指针
//srand在工程中出现一次就行。
int input = 0;
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;
}
*/
开头先给出菜单,1为开始游戏,0为退出游戏。定义game函数,难点在于如何生成一个随机数,要用到rand、srand和指针,其中srand为rand随机值的起点,并以变化的时间戳为起始点,否则虽然生成的数时随机的,但每次生成的随机数都相同。
game函数中,输入你猜的数字,输出会提醒猜大了还是猜小了,如此循环,直至猜对生成的随机数。
然后主函数中使用Switch语句,实现游戏的开始和退出。
简易版猜数字游戏,任有待改进。