C语言猜数游戏详解(含生产随机数rand函数,以及关机代码)

在学习完分支与循环的内容之后,我们就可以尝试使用它来写出一个简单的猜数小游戏了。

1. 最简单的猜数游戏

话不多说直接上代码

#include<stdio.h>
int main()
{
	int a,b,i;
	a=56;//随便给a赋值
	for (i = 1;; i++)
   {
	   scanf("%d", &b);
	   if (b == a)
	   {
		   printf("找到了这个数为%d\n", b);
		   break;
	   }
	   if (b < a)
	   {
		   printf("太小了,再试一次\n");
	   }
	   if (b > a)
	   {
		   printf("太大了,再试一次\n");
	   }
	} 
	return 0;
 } 

这个猜数游戏是一个最简单的猜数游戏,仅需要一个循环嵌套分支语句就能写出来这里就不多讲了

2.进阶-生成随机数的猜数游戏

在写这个代码之前我们需要了解如何生成随机数,生成随机数可以使用rand()函数,下面我们先介绍一些rand()函数

rand()函数

首先使用 rand()函数需要引用头文件即#include<stdlib.h> 使用格式:

#include<stdio.h>
#include<stdlib.h>
int main()
{
   int a;
   a=rand();
   printf("%d",a); 
   return 0;
} 

但是你会发现每次你运行的结果总是 41 原因是:rand函数生成的是伪随机数,是根据某个数按照某个公式计算得出,我们称之为种子(seed);而我们每次运行的种子都是相同的,这就导致运行结果一直相同
这时候我们就需要用到srand函数即为rand函数的种子赋值,我们还需要思考赋什么值,我们可以把种子的值赋值成 time即每次运行程序时的时间;而使用time(0)又需要引用头文件#include<time.h> 因此可以得出代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
   srand((unsigned)time(NULL));
   int a;
   a=rand();
   printf("%d",a); 
   return 0;
} 

这样得到的就是一个真正的随机数了
接下来看一下如何指定这个随机数的范围:
我们在前面加一个a后面加一个%b来确定范围 例如

int  a=rand()%10;//代表0~9之间的随机数
int a=44+rand()%12;//代表44~55之间的随机数

int a=m+rand()%n;//代表m~(m+n-1)之间的随机数

下面直接看代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	srand((unsigned)time(NULL));
	int a,b,i;
	a = rand()%100;
	for (i = 1;; i++)
	{
		scanf("%d", &b);
		if (b == a)
		{
			printf("找到了这个数为%d\n", b);
			break;
		}
		if (b < a)
		{
			printf("太小了,再试一次\n");
		}
		if (b > a)
		{
			printf("太大了,再试一次\n");
		}
	}
	return 0;
}

3.再次进阶-测试一定数量没有答对电脑自动关机

我们只需要添加一个条件即猜数字的最多次数,超过这个数就电脑自动关机
这时候我们就需要用到另一个函数:system(“shutdown -s -t 关机时间”);使用这个函数需要引用头文件夹#include<stdlib.h>.
话不多说上代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	srand((unsigned)time(NULL));
	int a,b,i;
	a = rand()%100;
	for (i = 1;; i++)
	{
		scanf("%d", &b);
		if (b == a)
		{
			printf("找到了这个数为%d\n", b);
			break;
		}
		if (b < a)
		{
			printf("太小了,还有%d次机会\n",8-i);
		}
		if (b > a)
		{
			printf("太大了,还有%d次机会\n",8-i);
		}
		if (i >= 8)
		{
			system("shutdown -s -t 5");
		}
	}
	return 0;
}

结语

看到这就结束了,可以把代码发给你那懂一点点代码的怨种朋友让他玩猜数游戏了。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值