用C语言编写一个猜数字游戏,并且可以根据用户意愿决定是否继续。

#include<time.h>//将函数time需要的头文件time.h包含其中
#include<stdlib.h>
#include<stdio.h>
int main()
{
	int magic, guess, counter = 0, ret;
	char reply;
	srand(time(NULL));//为rand设置随机数种子
	do {
		counter = 0;
		magic = rand() % 100 + 1;//利用求余运算rand() % b将函数rand()生成的随机数变化在[0,b-1],利用rand() % b+a将随机数范围平移到[a,a+b-1]上,此处即为[1,100]
		do {
			printf("Please guess a magic number:");
			ret = scanf_s("%d", &guess);
			while (ret != 1)
			{
				while (getchar() != '\n')
					printf("Please guess a magic number:");
				ret = scanf_s("%d", &guess);

			}
			counter++;
			if (guess > magic)
				printf("Wrong!Too big!\n");
			else if (guess < magic)
				printf("Wrong!Too small!\n");
			else
				printf("Right!\n");
		} while (guess != magic && counter < 10);
		printf("counter=%d\n", counter);
		printf("Do you want to continue(Y/N or y/n)?");
		scanf_s(" %c", &reply);
		//getchar();C语言中输入单字符避免回车的几种方法,一是再输入字符前加空格;二是用getchar();将回车读入;三是在前一个输入后加\n:如scanf("%d\n",&n);scanf("%c",m);
		printf("%c\n", reply);
	} while (reply == 'Y' || reply == 'y');
	return 0;
}

//rand()生成的是不大于双字节整数的最大值32767,及其取值范围为[0,32767].调用该函数要用到头文件stdlib.h。
//我对rand函数的理解是这样的:rand会在电脑中随机生成一系列数列,但每次调用时都只调用了相同的那个数列的第一个数。而用srand()为rand()设置随机数种子,就会产生不同的随机数序列。而对应的那个数也就不同了;
//time(NULL)返回一与日历秒有关的无符号整数。

  这个程序让我不是很满意的地方就是如果要确定继续或者退出的话,需要按两次回车,但是我现在还没想到一个好的主意。求大佬帮忙,哈哈哈哈。
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值