猜数字游戏实现
电脑随机生产一个1~100之间的数
接下来我们猜数字
如果猜小了,就告诉你猜小了
如果猜大了,就告诉你猜大了
如果猜对了,那就恭喜你,游戏结束
我认为的难点:如何产生一个1~100的随机数
/*生成随机数 使用rand函数生产的伪随机数 rand函数生产的随机数的范围是:0~RAND_MAX(32767) rand函数在生产随机数之前,要使用srand函数设置随机数的生成器 srand函数需要传入一个 unsigned int 类型的数据,所以可以使用类型的强制转换 time 函数可以返回一个时间戳,时间是在不断发生变化的,适合用来产生随机数 time 函数需要传入一个指针,这里不需要具体的指针,所以给一个空指针 rand()%100产生0-99之间的数字,加个1就能产生1-100之间的数字*/ srand((unsigned int)time(NULL)); int ret = (rand()) % 100;
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <stdlib.h> //srand, rand函数需要的头文件
#include <time.h> //time函数需要的头文件
void menu()
{
printf("********** 猜数字小游戏 ************\n");
printf("*********** 1.play ************\n");
printf("*********** 0.exit ************\n");
printf("*************************************\n");
}
void game()
{
//生成随机数
//使用rand函数生产的伪随机数
//rand函数生产的随机数的范围是:0~RAND_MAX(32767)
//
//rand函数在生产随机数之前,要使用srand函数设置随机数的生成器
//srand函数需要传入一个 unsigned int 类型的数据,所以可以使用类型的强制转换
//
//time 函数可以返回一个时间戳,时间是在不断发生变化的,适合用来产生随机数
//time 函数需要传入一个指针,这里不需要具体的指针,所以给一个空指针
//
//rand()%100产生0-99之间的数字,加个1就能产生1-100之间的数字
srand((unsigned int)time(NULL));
int ret=(rand())%100+1;
printf("已经生成好随机数,请输入:\n");
int x;
while (1)
{
printf("请输入:\n");
scanf("%d", &x);
if (x > ret)
{
printf("猜大了\n");
}
else if (x < ret)
{
printf("猜小了\n");
}
else
{
printf("恭喜你猜对了\n");
break;
}
}
}
int main()
{
//需要循环来打印游戏界面
int input;
do {
menu();
printf("请选择:\n");
scanf("%d", &input);
//采用switch结构
switch (input)
{
case 1:
game();
break;
case 0:
printf("游戏结束");
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}