猜数字游戏

C语言中的猜数字游戏,比其他语言麻烦一点的是随机数不好给出,为了使随机数每次都不一样,这里引用时间戳这个概念。

时间戳:时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。 通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。

 时间可以转化成时间戳,因为时间措施随着时间的流动而改变的。

int ret = rand()%100+1;//随机生成0-32767  0-RAND_MAX   %100+1是为了猜1到100之间的数
srand((unsigned int)time(NULL));

调用时间戳,设定随机数的起点不同,所以随机数也不同。

下面来看全部代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<windows.h>
#include<stdlib.h>
#include<time.h>
void menu() {
	printf("玩不玩猜数字游戏\n");
	printf("******1/玩******\n");
	printf("******0/不玩****\n");
	printf("请输入数字:>");
}
void game() {
	//生成随机数
	int ret = rand()%100+1;//随机生成0-32767  0-RAND_MAX   %100+1是为了猜1到100之间的数
	//printf("%d\n", ret);打印随机数
	//猜数字
	int guess;
	do {
		scanf("%d", &guess);//这里输入你猜的数
		if (guess < ret) {
			printf("猜小了\n");
		}
		else if (guess > ret) {
			printf("猜大了\n");
		}
		else {
			printf("猜对了\n");
		}
	} while (guess!=ret);//当你猜不对时,就让你一直猜,直到猜对位置
}
int main() {
	int x;
	//设置随机数的起点,这里使用了时间戳,不要频繁使用
	srand((unsigned int)time(NULL));
	do 
	{
		menu();
		
		scanf("%d", &x);
		switch (x) {
		case 1:
			game();
			break;
		case 0:
			printf("退出\n");
			break;
		default: 
			printf("重新选择\n");
		
		}
	} while(x);//输入的x为1时,进入游戏,0时推出游戏,其他数字时重新输入
			  //当case 1结束了,直接break了,但是此时x=1还是会继续执行循环
			 //接着就打印菜单栏,可以进行多次游戏
	
	return 0;
}

效果展示:

 当输入3是,系统要求重新输入,当输入1时进入猜数字游戏,直到才对为止,输入0推出程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值