【C语言】猜数字游戏

解题思路:

1、菜单函数:

用户选择是否开始游戏;

2、游戏函数:

(1)系统产生一个随机数,作为要去猜的数。

(2)rand()函数用来产生随机数,返回一随机数值,范围在0至RAND_MAX (2147483647)间。

为了产生的随机数范围为1-100,result=rand()%100+1。

在调用此函数产生随机数前,必须先利用srand()设好随机数种子,

(3)如果未设随机数种子,rand()在调用时会自动设随机数种子为1。所生成的随机数都只能是一次性的,第二次运行的时候输出结果仍和第一次一样。

若要不同, 以不同的值来初始化它.初始化的函数就是srand(seed)。

通常可以利用geypid()或time(0)的返回值来当做seed。

如果用time(0)的话,要加入头文件#include<time.h>。

3、主函数:

(1)设置随机种子;

(2)进入菜单选择是否开始游戏,是则显示开始游戏并进入游戏函数,否则显示结束游戏。

具体代码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int Menu();
void Game();
int main(){
	srand(time(0));
	while (1){
		int choice = Menu();
		if (choice == 1){
			printf("游戏开始\n");
			Game();
		}
		else if (choice == 2){
			printf("游戏结束\n");
		}
		else{
			printf("非法输入,请重新输入。\n");
		}
	}
	system("pause");
	return 0;
}

void Game(){
	int result = rand() % 100 + 1;
	int number = 0;
	int count = 10;
	for (count = 10; count >0; count--){
		printf("你还有%d次猜数机会\n", count);
		printf("请输入1-100之间任意一个数字\n");
		printf("\n");
		scanf_s("%d", &number);
		if (number == result){
			printf("厉害,猜对啦!\n");
			printf("\n");
			break;
		}
		else if (number > result){
			printf("猜大啦!\n");
			printf("\n");
		}
		else{
			printf("猜小啦!\n");
			printf("\n");
		}
	}
	if (count == 0){
		printf("真菜!十次都猜错了!\n");
		printf("\n");
		printf("==================================================================="); 
		printf("\n");
	}
	printf("游戏结束!\n");
	printf("\n");
}

int Menu(){
	int choice = 0;
	printf("游戏规则:\n每局将有十次猜数机会,十次都猜错则游戏失败!\n \n");
	printf("是否开始游戏?是请输入 1 ,否请输入 2 \n");
	printf("\n");
	scanf_s("%d", &choice);
	return choice;
}

运行结果:

【C语言】猜数字游戏

【C语言】猜数字游戏                                  【C语言】猜数字游戏