其他分享
首页 > 其他分享> > Visiual Studio:用C编写简易猜数字游戏

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

作者:互联网

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

//猜数字游戏
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