实现猜数字的游戏:
要用程序完成以下几步:
1、电脑自动生成随机数(1到100之间的数字)
2、玩家输入自己猜的数字(输入0 —— 100之间的数字)
3、猜对了就输入:猜对了
猜错了就输入:猜大了,或者是猜小了
4、可以多次玩这个游戏。
任何程序都要从main函数开始去看:
找到下面程序中的main函数从那里开始分析:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu() //void 表示无返回值 —— 就不需要用到return
{
printf("########################\n");
printf("##### 0、退出游戏 ######\n");
printf("##### 1、玩游戏 ######\n");
printf("########################\n");
}
void game()
{
//生成随机数
int ret = rand() % 100 + 1;
//生成的随机数对100取余 —— 是0到99之间数 —— 加一之后范围就变成了1到100
//猜数字
int guess = 0;
printf("请输入所猜数字:");
while (1)
//这个循环完成 —— 猜数字 —— 猜对了就打印:猜对了 —— 猜错了就输入:猜大了,或者是猜小了
{
scanf("%d", &guess);
if (guess < ret)
{
printf("猜小了\n");
}
else if (guess > ret)
{
printf("猜大了\n");
}
else
{
printf("恭喜你!猜对了\n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
//生成随机数要用到rand()
//用rand()要调用srand()
//srand()其中()中要用到不断变化的量 —— 用时间戳来做不断变化的量 —— 时间戳可以用time()函数来实现
//(unsigned int) —— 是强制类型转换
//srand()函数不用引用多次,所以放在循环的前面就可以了
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;
}