概述
目录
- 猜数字游戏(产生100以内的数字)
- 定义功能打印函数
- 猜数字函数
- 主函数
- 完整代码
- 每文一语
前面文章有一个密码登陆的程序,这里需要强调一下数组是不需要取地址,因为数组本身就是以地址的形式存储的。
猜数字游戏(产生100以内的数字)
游戏可以一直玩,有功能选项!并且我们的游戏一打开就可以运行了,所以我们使用do while循环的模式。
定义功能打印函数
void menu()
{
printf("**********************************n");
printf("*********** 1.play **********n");
printf("*********** 0.exit **********n");
printf("**********************************n");
}
每次程序运行之后都需要我们进行打印信息,用于我们的用户进行玩游戏的提示,所以我们需要编写一个打印函数,该函数没有返回值,所以是void!
猜数字函数
//RAND_MAX--rand函数能返回随机数的最大值。
void game()
{
int random_num = rand() % 100 + 1;
int input = 0;
while (1)
{
printf("请输入猜的数字>:");
scanf("%d", &input);
if (input > random_num)
{
printf("猜大了n");
}
else if (input < random_num)
{
printf("猜小了n");
}
else
{
printf("恭喜你,猜对了n");
break;
}
}
}
这里我们需要产生一个随机值,这里的随机值和我们其他语言(Python)是不一样的,这里为什么要将产生的rand()%100呢?因为这里是随机数的最大值,需要控制在100以内,利用取余操作符,模100=1——99,然后加1,就是1-100的数字。
主函数
int main()
{
int input = 0;
srand((unsigned)time(NULL));
do
{
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!n");
break;
}
} while (input);
return 0;
}
这里首先需要用户输入一个值,这个值那么是0,要么是1,所以它可以作为我们循环是否执行的判断依据,利用switch进行执行。
srand((unsigned)time(NULL));
由于每次生成的随机数要满足随机,所以我们需要利用我们的初始化随机函数种子:
1、拿当前系统时间作为种子,由于时间是变化的,种子也在变化,可以产生随机数。计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,则会生成相同的随机序列。 所以,一般都会以当前的时间作为种子来生成随机数,这样更加的随机。
2、使用时,参数可以是unsigned型的任意数据,比如srand(10);
3、如果不使用srand,用rand()产生的随机数,在多次运行,结果是一样的。
而且这个函数只需要调用一次,不然它产生的数比较的逼近,无法模拟真实的游戏场景,所以我们将其初始化随机种子放到我们的main函数。
完整代码
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("**********************************n");
printf("*********** 1.play **********n");
printf("*********** 0.exit **********n");
printf("**********************************n");
}
//RAND_MAX--rand函数能返回随机数的最大值。
void game()
{
int random_num = rand() % 100 + 1;
int input = 0;
while (1)
{
printf("请输入猜的数字>:");
scanf("%d", &input);
if (input > random_num)
{
printf("猜大了n");
}
else if (input < random_num)
{
printf("猜小了n");
}
else
{
printf("恭喜你,猜对了n");
break;
}
}
}
int main()
{
int input = 0;
srand((unsigned)time(NULL));
do
{
menu();
printf("请选择>:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
break;
default:
printf("选择错误,请重新输入!n");
break;
}
} while (input);
return 0;
}
每文一语
要学会遇事不惊,才是遇事而为!
最后
以上就是顺利煎蛋为你收集整理的手写C语言之分支循环应用-编写猜数字游戏(09)的全部内容,希望文章能够帮你解决手写C语言之分支循环应用-编写猜数字游戏(09)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复