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

代码:

#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; 
}

 运行结果:

实现人机猜拳游戏 java 人机猜数游戏代码_游戏

 扩展知识:

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

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

实现人机猜拳游戏 java 人机猜数游戏代码_随机数_02