c语言习题—人机猜数游戏***生成随机数***

该代码展示了一个用C语言编写的简单人机猜数游戏,计算机生成一个1000到9999之间的随机四位数,用户需猜测这个数字。程序会告诉用户有几个数字正确以及位置也正确的数量,直到用户猜中为止。随机数生成使用了`srand`和`rand`函数,通过`time(NULL)`确保每次运行的随机数序列不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 人机猜数游戏
由计算机“想”一个四位数,请人猜这个四位数是多少。
人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,
并且在对的数字中又有几位位置  也是对的,将结果显示出来,给人以提示,请人再猜,
直到人猜出计算机所想的四位数是多少为止

代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
	int num;
	srand((unsigned)time(NULL));//随机数初始化
	num= rand()%9000+1000;//产生随机的四位数 %9000:不超过9000的数 +1000使随机数范围在1000~9999
	int guess;
	int q;//随机数的千位
	int b;//百位
	int s;//十位
	int g;//个位
	q = num / 1000;
	b = num % 1000 / 100;
	s = num % 100 / 10;
	g = num % 10;
	do
	{
		//输入一个数
		printf("请输入猜的数:");
		scanf_s("%d", &guess);
		//取各个位数字
		int q1, b1, s1, g1;
		q1 = guess / 1000;
		b1 = guess % 1000 / 100;
		s1 = guess % 100 / 10;
		g1 = guess % 10;
		//比对num和guess 一样输出数字,不一样输出*
		printf("%c", q == q1 ? q + '0' : '*');//数字+‘0’== 数字字符
		printf("%c", b == b1 ? b + '0' : '*');
		printf("%c", s == s1 ? s + '0' : '*');
		printf("%c", g == g1 ? g + '0' : '*');
		printf("\n");
	} while (num != guess);
	printf("猜对啦!\n");
	return 0; 
}

 运行结果:

 扩展知识:

由于同一种子数为一个随机序列,这种随机数为伪随机,因此引入time()函数改变种子数即可使用srand()生成不同随机数(time毫秒单位 每毫秒变化)

time()函数 longlong重定义time_t数据类型

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天喜Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值