#include <stdio.h>

#include <stdlib.h>

#include<time.h>//加上此头文件的作用是什么?另外不加的话有什么影响?





//随机生成一个1~100的数字

int getRandomNumber()

{

    srand((unsigned int)time(0));

    return (rand()%100)+1;

}



//定义一个对猜数字游戏所用次数的结果的判断

void GuessResult(int counter)

{

    switch(counter)

    {

    case 1:

    case 2:

    case 3:

    case 4:

        printf("Are you Genius?\n");

        break;

    case 5:

    case 6:

    case 7:

        printf("Your score is just all right!\n");

        break;

    case 8:

    case 9:

    case 10:

        printf("Just so so!\n");

        break;

    case 11:

    case 12:

        printf("Bad Score!!!\n");

        break;

    default:

        printf("Are you want to case me?");

        break;



    }



}





//核心代码:猜测的过程

void GuessTheNumber()

{

    int randomNumber=getRandomNumber();

    int counter=1;

    int myAnswer;

    while(counter)

    {

        printf("Enter guess number %d:",counter);

        scanf("%d",&myAnswer);

        if(randomNumber>myAnswer)

        {

            printf("Too Small!\n");

        }

        else if(randomNumber<myAnswer)

        {

            printf("Too bigger!\n");

        }

        else if(myAnswer==randomNumber)

        {

            printf("that is correct!\n");

            break;

        }

        else

        {

            printf("You may input a wrong way,please check it clearly\n");

        }

        counter++;



    }

    GuessResult(counter);//我为什么会在此处调用这样的一个函数?



}





//主函数通过调用前面自己定义的函数来执行,是不是感觉主函数一下子变瘦了呢?

int main()

{

    printf("Welcome to our Guess_Number_Game\n");

    GuessTheNumber();

    return 0;

}





/*

//猜数字进阶版,增加了询问是否再来一次的操作

//这个循环操作貌似有点问题,先不调用也罢;

int main()

{

    int flag;

    printf("Welcome to our Guess_Number_Game\n");

    while(flag)

    {

        GuessTheNumber();

        printf("Do you want to play it again?\tYes ,please press '1',No please press any others to exit\n");

        scanf("%d",&flag);

        if(flag==1)

        {

            GuessTheNumber();

        }

        else

        {

            flag=0;

            break;

        }

    }

    return 0;

}

*/

C语言实现的猜数字小游戏(主要是对于自定义函数的运用)的更多相关文章

  1. 简单的C语言猜数字小游戏

    猜数字小游戏可谓是C语言最为基础的一个知识点了,我们可以在此基础上进行延伸,实现随机数的猜测,然后是加入再来一局的模式,等等.这里是抛砖引玉,希望你能做出你的经典之作. #include <st ...

  2. Java基础知识强化之IO流笔记70:Properties练习之 如何让猜数字小游戏只能玩5次的案例

    1. 使用Properties完成猜数字小游戏只能玩5次的案例: 2. 代码实现: (1)猜数字游戏GuessNumber: package cn.itcast_08; import java.uti ...

  3. java猜数字小游戏

    /* * * 猜数字小游戏 * * 先由系统生成一个2-100之间的随机数字, * * 然后捕获用户从控制台中输入的数字是否与系统生成的随机数字相同, * * 如果相同则统计用户所猜的次数,并给出相应 ...

  4. [Python3 练习] 007 简单的猜数字小游戏

    题目:简单的猜数字小游戏 (1) 描述 程序随机生成一个数字,玩家用键盘输入所猜数字,在规定次数内猜对为胜. (2) 要求 程序随机生成一个 1 到 100 的自然数 有 7 次机会去猜 机会用尽之前 ...

  5. 简单的猜数字小游戏--Python

    猜数字小游戏: #coding=utf-8 import random   answer =random.randint(1,100) #生成随机数 n=int (input("Please ...

  6. 零基础自学Python十天,写了一款猜数字小游戏,附源码和软件下载链接!

    自学一门语言最重要的是要及时给自己反馈,那么经常写一些小程序培养语感很重要,写完可以总结一下程序中运用到了哪些零散的知识点. 本程序中运用到的知识点有: 1.输入输出函数 (input.print) ...

  7. 零基础自学Python十天的时候,写的一款猜数字小游戏,附源码和软件下载链接!

    自学一门语言最重要的是要及时给自己反馈,那么经常写一些小程序培养语感很重要,写完可以总结一下程序中运用到了哪些零散的知识点. 本程序中运用到的知识点有: 1.输入输出函数 (input.print) ...

  8. Java(控制台输出)实现猜数字小游戏

    import java.util.Scanner; import java.util.Random; public class GuestNum{ public static void main(St ...

  9. Python基础入门-实现猜数字小游戏

    今天呢,我们来通过前面学过的一些知识点来完成一个猜数字大小的游戏程序设计.那么呢,一般人写代码直接上来就干,没有分析,这样的做法是没有产出的,除非你是大牛,今天呢,我会把我学习编程的思路分享给大家,我 ...

随机推荐

  1. centos 7安装pycharm

    1.首先安装jdk: yum install java 结果: [root@controller bin]# java -version openjdk version "1.8.0_131 ...

  2. jQuery 效果 – 停止动画

    jQuery stop() 方法用于在动画或效果完成前对它们进行停止. 点击这里,向上/向下滑动面板 实例 jQuery stop() 滑动 演示 jQuery stop() 方法. jQuery s ...

  3. Ubuntu批量修改文件名后缀

    比如把当前文件夹下所有scss文件后缀改为less rename 's/\.scss/\.less/' ./*

  4. mysql 常见语句

    事务 默认是开启了autocommit,可以通过show variables like 'autocommit';查看. 如果临时需要取消autocommit,可以通过START TRANSACTIO ...

  5. C实战:强大的程序调试工具GDB

    C实战:强大的程序调试工具GDB 1.基本调试 这里只列举最最常用的GDB命令. 1.1 启动GDB gdb program:准备调试程序.也可以直接进入gdb,再通过file命令加载. 1.2 添加 ...

  6. LauncherModel.Callbacks接口

    public interface Callbacks { //如果Launcher在加载完成之前被强制暂停,那么需要通过这个回调方法通知 //launcher,在它再次显示的时候重新执行加载过程 pu ...

  7. Android源码浅析(六)——SecureCRT远程连接Linux,配置端点和字节码

    Android源码浅析(六)--SecureCRT远程连接Linux,配置端点和字节码 需要编译源码的同学,一般都是win+虚拟机吧,但是再虚拟机里体验并不是很好,所有市面上有很多的软件能够做到在wi ...

  8. PGM:有向图模型:贝叶斯网络

    http://blog.csdn.net/pipisorry/article/details/52489270 为什么用贝叶斯网络 联合分布的显式表示 Note: n个变量的联合分布,每个x对应两个值 ...

  9. zk日常运维管理

    清理数据目录 dataDir目录指定了ZK的数据目录,用于存储ZK的快照文件(snapshot).另外,默认情况下,ZK的事务日志也会存储在这个目录中.在完成若干次事务日志之后(在ZK中,凡是对数据有 ...

  10. 皮尔森相似度计算举例(R语言)

    整理了一下最近对协同过滤推荐算法中的皮尔森相似度计算,顺带学习了下R语言的简单使用,也复习了概率统计知识. 一.概率论和统计学概念复习 1)期望值(Expected Value) 因为这里每个数都是等 ...