C语言系列之干点大事(一)

        小枫是一个喜欢在网络上玩各种竞猜游戏的有为青年,尤其喜欢那种玩游戏还能拿奖品的游戏项目。

        话说有一天,他的狐朋狗友小鹏向他推荐了一款游戏,名为数字猜猜看,只要能猜对数字,就可以赢取iphone13和Watch Series 7这两个重量级的苹果产品,说的小枫心里一阵春心荡漾,迫不及待的找小鹏要了数字猜猜看的网址,登录了上去,开始玩了起来。

        玩了一会,小枫感觉有些不对劲,不管怎么猜,都猜不对数字,网站一会提示你猜大了,一会提示你猜小了,就是猜不到真实的数字,一阵不好的感觉在小枫的头脑中滚动。

        小枫觉得不能就这样算了,必须要找到问题的根源,于是他就利用自己曾经在蓝翔技校学习的电脑知识,一不小心的潜入了网站的后台,直达核心源码,发现了一个小秘密。。。

void menu()
{
	printf("*******猜数字游戏********\n");
	printf("*********1.play**********\n");
	printf("*********0.exit**********\n");
	printf("*************************\n");

}

void game()
{
	int guess;
	int res = rand() % 100 + 1;

	while (1) {
		printf("请输入你要猜的数字>");
		scanf("%d", &guess);

		if (res > guess) 
		{
			printf("大了\n");
		}
		
		else if (res<guess)
		{
			printf("小了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
	}


}

int main()
{
	menu();
	int a = 0;
	srand((unsigned int)(time(NULL)));
	do {

		printf("请输入选项>");
		scanf("%d", &a);
		switch (a)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("选择错误,重新选择\n");
			break;
		}
	} while (a);


}

        核心代码很简单,C语言写的一个小程序,使用了一个C语言内时间的库函数生成随机数,然后将随机数控制在100以内,猜100以内的数字,这没有什么问题,但是小枫发现主要的问题是在这个game函数上。

void game()
{
	int guess;
	int res = rand() % 100 + 1;

	while (1) {
		printf("请输入你要猜的数字>");
		scanf("%d", &guess);

		if (res > guess) 
		{
			printf("大了\n");
		}
		
		else if (res<guess)
		{
			printf("小了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
	}


}

        经过仔细的研究和复盘,原来这个函数在if判断上出现了逻辑错误,会误导他人,输入错误的数字,如果这样输入下去,永远也猜不对。

        于是小枫就将核心源码进行了修改,将if判断修改为正确的逻辑。

void game()
{
	int guess;
	int res = rand() % 100 + 1;

	while (1) {
		printf("请输入你要猜的数字>");
		scanf("%d", &guess);

		if (guess>res) 
		{
			printf("大了\n");
		}
		
		else if (guess<res)
		{
			printf("小了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
	}


}

        这样小枫就觉得可以欢天喜地的赢取苹果产品大礼包啦!小枫按照修改后的代码,猜对了数字,向网站提交了收获礼品的家庭地址。开心的和女朋友睡了过去。

        然而一等好几天,依然没有收到苹果产品的大礼包,小枫觉得自己遭到了电信诈骗,一怒之下,举报了猜数字网站,还冲着电脑骂了一句,他妈的坏人。

        突然,一阵急促的敲门声打乱了小枫的情绪,小枫转过头,大叫了一声,谁呀,能轻点吗?门不需要用钱买呀。

        我们是公安局网安大队,请开下门。

        小枫一听,眉头一紧,一阵不好的预感涌上心头。。。

                                                                                                                        (未完待续.......)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值