当前位置: 首页 > news >正文

C语言---猜数字游戏

猜数字游戏代码

#include <stdio.h>
#include <time.h>
#include <stdlib.h>void meun()
{printf("**********************\n");printf("******* 1.play *******\n");printf("******* 0.quit *******\n");printf("**********************\n");
}void game()
{int rand_number = rand() % 100 + 1;//随机数的范围是1~100int input2 = 0;int right = 100;//最大是100int left = 1;//最小是1int count = 5;//猜数字机会printf("猜数字游戏开始\n开始猜数字\n");while (count){printf("请输入:");scanf("%d", &input2);if (input2 > rand_number){ count--;right = input2;printf("猜大了,范围是 %d--%d\n",left,right);printf("你还有%d机会\n", count);}if (input2 < rand_number){count--;left = input2;printf("猜小了,范围是 %d--%d\n", left, right);printf("你还有%d机会\n", count);}if (input2 == rand_number){printf("恭喜你猜对了\n");break;}}if (count == 0){printf("游戏失败\n");printf("要猜的数字是%d", rand_number);}
}int main()
{srand((unsigned int)time(NULL));meun();regain:printf("请选择:");int input1 = 0;scanf("%d", &input1);switch (input1){case 1:{printf("进入游戏\n");game();break;	}case 0:{printf("退出游戏\n");break;}default:{printf("输入错误,请重新输入\n");goto regain;}}return 0;
}

猜数字游戏思路

1.菜单
2.玩游戏还是退出游戏
3.游戏–设置随机数
4.猜数字

1.菜单

void meun()
{printf("**********************\n");printf("******* 1.play *******\n");printf("******* 0.quit *******\n");printf("**********************\n");
}

提示玩家输入1表示玩游戏,输入0表示退出游戏

2.玩游戏还是退出游戏

运用 switch语句实现

regain:printf("请选择:");int input1 = 0;scanf("%d", &input1);switch (input1){case 1:{printf("进入游戏\n");game();break;	}case 0:{printf("退出游戏\n");break;}default:{printf("输入错误,请重新输入\n");goto regain;}}

input1 = 1进入游戏
input = 0退出游戏
input1等于其他数字时提示输入错误,重新输入
重新输入用goto语句实现,在上面这个代码中,会跳到regain这里

3.游戏–设置随机数

使用rand()函数设置随机数,为确保每次运行程序时生成的随机数序列不同,通常需要使用srand()函数来设置随机数种子
srand()函数使用time(NULL)作为种子,意味着随机数种子会根据当前时间变化,从而使得每次运行程序生成的随机数序列不同

rand() srand()的头文件是stdlib.h
time()的头文件是time.h

1 srand((unsigned int)time(NULL));2 int rand_number = rand() % 100 + 1;//随机数的范围是1~100

4.猜数字

判断输入的数与随机数那个大,输入的数比较大就输出猜大了,输入的数比较小就输出猜小了,相等就输出猜对了,并且停止循环(运用break

void game()
{int rand_number = rand() % 100 + 1;//随机数的范围是1~100printf("猜数字游戏开始\n开始猜数字\n");while (1){printf("请输入:");scanf("%d", &input2);if (input2 > rand_number){ printf("猜大了\n");}if (input2 < rand_number){printf("猜小了"\n);}if (input2 == rand_number){printf("恭喜你猜对了\n");break;}}
}

到这猜数字的基本思路就完成了

当然还可以改进,比如显示范围,多少次机会等等

left = 1 right = 100表示随机数的范围是1~100
count = 5表示有五次猜数字的机会

假设输入的input2 = 45,如果猜大了,让right = input2范围就变成了left -- right1 -- 45;如果猜小了,让left = input2 范围就变成了left -- right45 -- 100

每次猜完机会减一,即count--,当count == 0时,机会为0,游戏结束

void game()
{int rand_number = rand() % 100 + 1;//随机数的范围是1~100int input2 = 0;int right = 100;//最大是100int left = 1;//最小是1int count = 5;//猜数字机会printf("猜数字游戏开始\n开始猜数字\n");while (count){printf("请输入:");scanf("%d", &input2);if (input2 > rand_number){ count--;right = input2;printf("猜大了,范围是 %d--%d\n",left,right);printf("你还有%d机会\n", count);}if (input2 < rand_number){count--;left = input2;printf("猜小了,范围是 %d--%d\n", left, right);printf("你还有%d机会\n", count);}if (input2 == rand_number){printf("恭喜你猜对了\n");break;}}if (count == 0){printf("游戏失败\n");printf("要猜的数字是%d", rand_number);}
}

http://www.mrgr.cn/news/93190.html

相关文章:

  • printf 与前置++、后置++、前置--、后置-- 的关系
  • vue3:初学 vue-router 路由配置
  • 【leetcode hot 100 189】轮转数组
  • 详解 scanf 和 printf(占位符、printf、scanf的返回值、printf的输出格式、scanf的输入格式)
  • GPU/CUDA 发展编年史:从 3D 渲染到 AI 大模型时代(上)
  • Linux之命令记录【一】
  • 如何使用 Ollama 的 API 来生成聊天
  • 从数据到决策,永洪科技助力良信电器“智”领未来
  • transformer架构解析{掩码,(自)注意力机制,多头(自)注意力机制}(含代码)-3
  • 从零开始学习Slam--数学概念
  • 计算机网络软考
  • PHP fastadmin 学习
  • 【随手笔记】利尔达NB模组
  • 8.路由原理专题
  • 项目工坊 | Python驱动淘宝信息爬虫
  • 【ATXServer2】Android无法正确显示手机屏幕
  • EtherNet/IP转Modbus解析基于网关模块的罗克韦尔PLC与Modbus上位机协议转换通讯案例
  • JavaScript基础
  • AI-Ollama本地大语言模型运行框架与Ollama javascript接入
  • 甘特图开发代码(测试版)