[c语言]猜数字

简介

  用函数写一个猜数字小游戏

正文

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
 printf(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n");
 printf("********     1.开始游戏     ********\n");
 printf("********     0.退出         ********\n");
 printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n");
 system("color 4B");
}
void game()
{
 int input = 0;
 int j = rand()%100+1;
 printf("开始猜数字游戏,请输入你要猜的数\n");
 while(1)
 {
  scanf("%d",&input);
  if(input > j)
  {
   printf("猜大了\n");
  }
  else if(input < j)
  {
   printf("猜小了\n");
  }
  else
  {
   printf("猜对了\n");
   break;
  }
 }
}
int main()
{
 int input = 0;
 srand((unsigned)time(NULL));
 do
 {
  menu();
  printf("请输入选项选择:\n");
 scanf("%d",&input);
 switch(input)
 {
 case 1:
  game();
  break;
 case 0:
  printf("游戏已退出\n");
  break;
 default:
  printf("选择错误,请重新选择\n");
  break;
 }
 }while(input);
 return 0;
}
<think>我们来实现一个简单的猜数字游戏游戏规则如下: 1. 程序随机生成一个1100之间的整。 2. 玩家有10次机会测这个字。 3. 每次玩家输入一个字,程序会告诉玩家这个字是大于还是小于目标字。 4. 如果玩家在10次内中,则玩家获胜;否则,游戏失败并公布答案。 我们将使用C语言来实现这个游戏。 步骤: 1. 引入必要的头文件。 2. 使用rand()函生成随机,注意需要设置随机种子。 3. 循环10次,每次读取用户的输入,并与目标字比较。 4. 根据比较结果给出提示。 5. 如果中,提前结束循环并宣布胜利;如果循环结束还未中,则宣布失败。 注意:rand()函生成的随机范围是0到RAND_MAX,我们需要将其限定在1-100之间。 代码实现如下: </think>以下是使用C语言实现的猜数字游戏代码。程序会随机生成一个1-100的字,玩家有10次机会测,每次测后会提示太大或太小: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(0)); // 用当前时间初始化随机种子 int secret = rand() % 100 + 1; // 生成1-100的随机 int guess, attempts = 0; const int max_attempts = 10; printf("欢迎来到猜数字游戏!\n"); printf("我已经好了1100之间一个字,你有%d次测机会。\n\n", max_attempts); while (attempts < max_attempts) { printf("输入你的测 (还剩%d次机会): ", max_attempts - attempts); scanf("%d", &guess); attempts++; if (guess == secret) { printf("\n恭喜!你在第%d次中了字 %d!\n", attempts, secret); return 0; } else if (guess < secret) { printf("太小了!\n"); } else { printf("太大了!\n"); } } printf("\n很遗憾,你没有中。正确答案是:%d\n", secret); return 0; } ``` ### 代码解释: 1. **随机生成**: - `srand(time(0))` 用系统时间初始化随机生成器 - `rand() % 100 + 1` 生成1-100范围内的随机整 2. **游戏循环**: - 玩家最多有10次测机会 (`max_attempts`) - 每次循环中使用 `scanf` 读取玩家的输入 - 比较输入值与秘密字,给出提示 - 中时立即结束程序 3. **提示系统**: - 每次提示剩余尝试次 - 根据玩家输入给出"太大"/"太小"反馈 - 游戏结束显示正确答案 4. **边界处理**: - 输入非字时会出错(实际项目中需额外验证输入) - 包含防作弊设计(随机种子基于时间)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值