ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Visiual Studio:用C编写简易猜数字游戏

2021-12-21 23:59:22  阅读:203  来源: 互联网

标签:Visiual guess int srand ret 简易 Studio printf 100


注意:随机数要在循环外部生成 

//猜数字游戏
void menu() {
	printf("#######################\n");
	printf("######1.        #######\n");
	printf("######2.        #######\n");
}
void game() {
	int ret = rand()%100+1;
	int guess = 0;
		while (1) {
		printf("请猜数字:\n");
		scanf("%d", &guess);
		if (guess < ret) {
			printf("猜小了,在%d和100间\n", guess);
		}	
		else if (guess > ret) {
			printf("猜大了,在0和%d之间\n", guess);
		}
		else if (guess = ret) {
			printf("猜对了!\n");
			break;
		}
	}


}
int main() {
	int input  = 0;
	srand((unsigned int)time(NULL));
	do {
		menu();
		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("猜数字\n");
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("输入有误!");
			break;

		}

	} while (input);
	return 0;
	
 }

取一个随机数用rand函数,头文件#include<stdlib.h>

如果单纯写以下代码,每次执行程序都会是一样的随机数

    int ret = rand();
    printf("%d\n", ret); 

在代码内加入srand()出现每次都是一个数字,因为 起始值100不变,所以随机值不变

 

解决方法:在srand()内部使用会实时变化的数字——时间戳

srand((unsigned int)time(NULL));
    int ret = rand();//使用前要用srand()设置随机起点
    printf("%d\n", ret);

出现数字间隔不够大,若操作过快会出现数字相同

解决方案:把srand放到主函数中

生成1-100的随机数:模100+1

int ret = rand()%100+1; 

标签:Visiual,guess,int,srand,ret,简易,Studio,printf,100
来源: https://blog.csdn.net/weixin_49176457/article/details/122043447

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有