思路:1.先编写一个程序,生成1-100之间的随机数
2.猜数字
(1)如果猜小了,要告诉用户猜小了,继续猜;
(2)如果猜大了,要告诉用户猜大了,继续猜;
(3)如果猜对了,要告诉用户猜对了,并结束。
3.游戏要反复玩
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<time.h>//引用时间戳函数的头文件
#include<stdlib.h>//引用rand函数和srand的头文件
//菜单
void menu()
{
printf("****************\n");
printf("** 1.play **\n");
printf("** 0.exit **\n");
printf("****************\n");
}
//游戏
//rand函数返回的是0-RAND_MAX(32767)之间的一个随机数
//#define RAND_MAX 0x7fff(32767)
void game()
{
int guess = 0;
int ret = rand() % 100+1;//生成1-100的随机数(任何一个数%100,余数在0-99之间,加1,则在1-100之间)
//猜数字
printf("请输入猜的数字(1-100):\n");
while ((scanf("%d", &guess)) == 1)
{
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜,猜对了!\n");
break;
}
}
}
//RAND_MAX--rand函数能返回随机数的最大值。
//rand函数在使用之前要使用一个srand函数来设置随机数的起点
//主函数
int main()
{
int a = 0;//a是用来存放输入的1或0的
srand((unsigned int)time(NULL));//srand(变量)使每次生成的随机数初始化,(unsigned int)强制转换防止数据丢失
do {
menu();
printf("请选择:\n");
scanf("%d",&a);
switch (a)
{
case 1:
printf("猜数字\n");
game();
break;
case 0:
printf("结束游戏\n");
break;
default:
printf("选择错误,请重新输入\n");
break;
}
} while (a);//当a是1时,则继续循环;当a是0时为假,则跳出循环,结束游戏
return 0;
}
//时间戳
//C语言中time函数就会返回时间戳
//void srand (unsigned int seed);则有(unsigned int)time(NULL)
//因为time_t time(time_t* timer)中time_t* 是指针,所以有NULL(0)空指针,返回整型