基于C语言实现猜数字游戏

前言

系统生成一个【1,100】之间数字,用户随便输入一个整数,如果用户输入的数字比系统生成的数字小,提示“猜低了”,如果用户输入的数字比系统生成的数字大提示猜高了,如果相同,提示猜对了。

一、先生成一个【1,100】的随机整数

C语言的标准库中已经包含了很多现成的功能,rand可以生成一个随机整数,可以查阅cplusplus文档。浏览器输入www.cplusplus.com。cstdlib这是C++风格的写法,stdlib.h是C语言风格的写法,C++也可以用stdlib.h.C语言中函数参数如果没有,可以直接写(),也可以写作(void),但是返回值不可忽略void,一些老的编译器例如VC6,函数的返回值也可以忽略,如果省略返回值,表示返回值类型为int。

由上述文章可以看出,我们要生成【1,100】的随机整数,是rand()%100+1
注意:这里提示大家:rand这个函数以后在工作中,要谨慎使用,多线程,rand函数线程不安全,实际开发中如果对于随机数要求的不严格的话,就可以有很多中代替rand的方案来实现,例如,可以使用某个变量的地址来代替。

二、提示用户进行交互

加上一个和用户交互的菜单。代码如下:

int menu()
{
 printf("*********************\n");
 printf("欢迎来到猜数字游戏!\n");
 printf("1.开始游戏\n");
 printf("2.退出游戏\n");
 printf("请输入您的选择\n");
 printf("*********************\n");
 int choice = 0;
 scanf("%d", &choice);
 return choice;
}

三、伪随机和真随机

伪随机数是通过一定算法获得一个随机的值,并不是真的随机。
真随机数是伴随着物理实验的,比如:抛硬币、掷骰子、电子元件的噪音、核裂变等,他的结果符合三大特性的。是真实的随机数。
当我们就按rand来执行程序时,会发现每次执行的随机数都是一样的,这就是伪随机。那么如何生成真正的随机数呢,我们可以使用srand。只需要让每次执行程序的时候,设置的随机种子不一样即可,我们就会想到时间,时间是永远在变化的。计算机里表示时间,正是通过整数的方式来表示的,叫做时间戳,是很重要的。时间戳是以1970年1月1日0时0分0秒为基准时刻,计算当前时刻和基准时刻的秒数之差。
time(0)获取时间戳,需要包含头文件time.h。time函数返回类型叫time-t,time本质上是一个unsigned long long。所以会需要强制类型转换,把time-t结果强制转换为unsigned int。(这样做也许会丢数据,目的是为了让编译器不必提示这个警告)。
srand((unsigned int)time(0));

四、整体程序实现

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int menu()
{
 printf("*********************\n");
 printf("欢迎来到猜数字游戏!\n");
 printf("1.开始游戏\n");
 printf("2.退出游戏\n");
 printf("请输入您的选择\n");
 printf("*********************\n");
 int choice = 0;
 scanf("%d", &choice);
 return choice;
}
void game()
{
 printf("开始一局猜数字游戏\n");
 int toGuess = rand() % 100 + 1;
 while (1) {
  int inputNum = 0;
  printf("请猜一个1-100的整数\n");
  scanf("%d", &inputNum);
  if (inputNum > toGuess) {
   printf("猜高了!\n");
  }
  else if (inputNum < toGuess) {
   printf("猜低了!\n");
  }
  else {
   printf("猜对了!\n");
   break;
  }
 }
}
int main()
{
 srand((unsigned int)time(0));
 int choice = menu();
 while (1) {
  if (choice == 1) {
   game();
   break;
  } else if (choice == 0) {
   printf("goodbye!\n");
   break;
  } else {
   printf("您的输入有误!\n");
   }
  }
  system("pause");
  return 0;
}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现的猜数字小游戏

    本文实例为大家分享了C语言实现猜数字小游戏的具体代码,供大家参考,具体内容如下 代码如下 #include <stdio.h> #include<stdlib.h> #include<time.h> //rand为产生随机数的函数 void game() { srand((unsigned)time(NULL)); int key = (int)rand() % 100; //产生一个1---100之间的数 int ret = 0; while (1) { printf

  • C语言代码实现猜数字

    本文实例为大家分享了C语言代码实现猜数字的具体代码,供大家参考,具体内容如下 题目描述 猜数字游戏,顾名思义,就是需要人们猜测一个未知但已确定的数.其中,这个未知但要确定的数就要由编写程序随机来产生,当这个数生成后我们猜数字,程序告诉我们猜的高了,低了,或猜对了来提示我们猜数. 代码实现 #include <stdio.h> #include <stdlib.h> #include <time.h> void Guess_num(void) { int n; char

  • C语言游戏之猜数字

    本文实例为大家分享了C语言实现猜数字游戏的具体代码,供大家参考,具体内容如下 标题 1-100之间我已经想好了一个数了,看你能不能猜到,五次机会哦! 代码在此,请求出战! #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int c; puts("这是一个神奇的猜数字小游戏,如果你想玩的话,请按123继续,不想玩啊就按321"); scanf_s("%d&q

  • C语言实现猜数字

    今天给大家带来一个猜数字游戏,这是我个人接触到的第一个比较完整的游戏程序了,我觉得还蛮好玩. 由于我是再linux下编写的,可能有些地方和windos不一样,只需要做一些小改动就好~ 代码如下: 如果你玩了觉得好玩或者对你有帮助不妨给我点一个赞支持一下哦~ #include<stdio.h> #include<stdlib.h> #include<time.h> #include<unistd.h> void Menu(){ printf("***

  • C语言实现猜数字小游戏

    本文实例为大家分享了C语言猜数字的具体代码,供大家参考,具体内容如下 一.描述 猜数字游戏. 二. 程序 使用srand((unsigned)time(NULL)),产生随机数种子. int random = rand() % 100 + 1,产生0~100之间的随机数. 应加上头文件#include<time.h> #include<stdio.h> #include<windows.h> #include<time.h> void menu(){ pri

  • 用C语言实现猜数字游戏

    本文实例为大家分享了C语言实现猜数字的具体代码,供大家参考,具体内容如下 问题:计算机随机生成一个数字,用户进行猜数字,当用户猜错时,提醒用户猜高/猜低,直到用户猜的数字与计算机给的随机数一致时,提示猜对了并结束本次游戏. 思路:整个程序分为三个部分. 1.使用printf完成一个主菜单,方便用户操作. 2.写一个game函数,完成猜数字游戏的过程. 3.主函数,调用game函数,最终实现猜数字游戏. 重点:如何生成一个随机数. 如果直接使用to_guess = rand() % 100 + 1

  • C语言实现猜数字大小的游戏

    本文实例为大家分享了C语言实现猜数字大小的具体代码,供大家参考,具体内容如下 void menu() void menu() { printf("******** 猜数字游戏 ********\n"); printf("*********** 1.开始 *************\n"); printf("*********** 0.退出 *************\n"); } 简单的一个菜单用于显示. void game() void gam

  • 利用C语言实现猜数字游戏

    本文实例为大家分享了C语言实现猜数字游戏的具体代码,供大家参考,具体内容如下 实现效果如图: 代码如下: #include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int Guess,Num; //Guess猜数,Num随机数 int Next; //下一次执行 do { system("cls"); //清屏 printf("-------------------

  • C语言实现猜数字游戏

    本文实例为大家分享了C语言猜数字的具体代码,供大家参考,具体内容如下 题目:电脑随机给出一个数字,在一定范围内猜,有提示 问题分析: 电脑根据函数随机给出一个范围内的数字: 用户输入数字,去猜大小 对比数字,电脑给出提示 不断循环,直到猜正确 注意: 因为随机函数rand()是特殊的函数,计算机不会实现真正的随机数,所以需要一个seek来传给 rand(). 代码如下: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<

  • C语言实现猜数字的小游戏

    使用C语言来实现一个猜数字的小游戏 学习C语言有几天的时间了,在这期间对C语言的语法,程序结构有了了解,自己也练习过许多的代码,今天分享一个猜数字的代码. 一.猜数字游戏 描述:由程序随机生成一个1~100之间的数字,由用户去猜,直至猜对为止 1.代码 代码如下: #include <stdio.h> #include <stdlib.h> #include <time.h> void menu(void) { printf("|---------------

随机推荐