c语言实现猜数字游戏

5 篇文章 0 订阅

题目:

由系统随机生成0~100之间的随机整数,用户来猜。

模块分析

  • 菜单设置

自定义菜单函数,选择进行游戏还是退出,利用printf函数打印出菜单样式,代码实现如下

void  menu() {
	printf("****************\n");
	printf("    1.play\n");
	printf("    0.exit\n");
	printf("****************\n");
	printf("请输入你的选择:\n");
	
}

游戏实现:

主要由三个选择语句实现。键盘输入数字,对输入数字与生成的随机数进行判断,当输入数<随机数,输出“猜小了”;输入数>随机数,输出“猜大了”;输入数=随机数,输出“猜对了”

其中随机数的获得利用rand 函数,使用方法介绍可以参考链接:https://legacy.cplusplus.com/reference/cstdlib/rand/?kw=rand

在使用rand函数前,需要调用srand 生成器,参考链接:https://legacy.cplusplus.com/reference/cstdlib/srand/?kw=srand

srand需要一个随机参数,可以使用时间戳实现,即time,参考链接:https://legacy.cplusplus.com/reference/ctime/time/?kw=timesh

实现代码如下:

void game() {

	int ret = rand()%100+1;
	int num=0;
	while(1)
	{
		printf("请输入你猜的数字\n");
		scanf("%d", &num);
		if (num > ret) {
			printf("猜大了\n");
		}
		else if (num < ret) {
			printf("猜小了\n");
		}
		else {
			printf("恭喜你,猜对啦!\n");
			Sleep(2000);
			system("cls");
			break;
		}
	}
}

主函数:

在主函数中调用菜单函数后,键盘输入选择,利用Switch语句实现选择,调用游戏函数

代码实现如下:

int main() {

	srand((unsigned int)time(NULL));      //randa函数生成器

	int input = 0;
	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
			
		case 1:
			printf("开始游戏\n");
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,重新输入\n");
			break;
		}
		
	} while (input);
	
	return 0;
}

完整代码:

#include <stdio.h>
#include <stdlib.h>   //rand及system函数的头文件
#include <time.h>     //time函数的头文件
#include <windows.h>  //sleep函数头文件

void  menu() { 
	printf("****************\n");  
	printf("    1.play\n");
	printf("    0.exit\n");
	printf("****************\n");
	printf("请输入你的选择:\n");
	
}                                 //菜单函数

void game() {

	int ret = rand()%100+1;     //获取随机数
	int num=0;                  //猜的数字
	while(1)
	{
		printf("请输入你猜的数字\n");
		scanf("%d", &num);
		if (num > ret) {
			printf("猜大了\n");
		}
		else if (num < ret) {
			printf("猜小了\n");
		}
		else {
			printf("恭喜你,猜对啦!\n");
			Sleep(2000);        //间隔2000毫秒
			system("cls");      //清屏
			break;
		}
	}
}                                 //游戏实现

int main() {

	srand((unsigned int)time(NULL));       //随机数生成器

	int input = 0;        //菜单选择
	do
	{
		menu();
		scanf("%d", &input);
		switch (input)
		{
			
		case 1:
			printf("开始游戏\n");
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,重新输入\n");
			break;
		}
		
	} while (input);
	
	return 0;
}

  • 23
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值