#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. ACM Find them, Catch them

    The police office in Tadu City decides to say ends to the chaos, as launch actions to root up the TW ...

  2. pxe无人值守安装linux机器笔记

    最近做一些集群的测试的工作,做服务器测试最根本就是要安装系统,曾经我们用十几个光驱并行安装光驱的日子过去了,自从有了pxe一两天搭建好一个集群不是梦!当然做多了集群的搭建工作最多的感受就是,其实运维工 ...

  3. Java面向对象要点

    面向对象: 一.基本概念     类与对象的基本概念:         1.void类型是不需要返回值的,其他类型全部都需要返回值.             public  void  tell(){ ...

  4. 有无序的实数列V[N],要求求里面大小相邻的实数的差的最大值,关键是要求线性空间和线性时间。

    int findMaxDifBt2Nums(int* arr, int len) { int maxItem = arr[0], minItem = arr[0]; for (int i = 1; i ...

  5. Spark技术内幕:Sort Based Shuffle实现解析

    在Spark 1.2.0中,Spark Core的一个重要的升级就是将默认的Hash Based Shuffle换成了Sort Based Shuffle,即spark.shuffle.manager ...

  6. Ubuntu 安装 texlive2013 及中文支持

    分享一下安装和配置经验. 1.材料准备 texlive的安装包:可以百度下,这里也提供一个下载地址: http://mirror.hust.edu.cn/CTAN/systems/texlive/Im ...

  7. android推荐使用dialogFrament而不是alertDialog

    DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...

  8. Servlet之cookie处理

    Cookies 通常设置在 HTTP 头信息中(虽然JavaScript 也可以直接在浏览器上设置一个 Cookie).设置 Cookie 的 Servlet 会发送如下的头信息: HTTP/1.1 ...

  9. linux下查看Memcached运行状态

    查看Memcached运行状态的命令是:echo stats | nc 127.0.0.1 11211 查看memcached状态的基本命令,通过这个命令可以看到如下信息: STAT pid 2245 ...

  10. 根据iOS 10 的新特性,创建iMessage App,可用于自定义表情

    第一. 介绍(原文作者 澳大利亚19岁少年--Davis Allie ----原文地址) 随着iOS10的发布,苹果对开发者开放了Messages应用程序,开发人员现在可以创建他们自己的各种类型 并且 ...