#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. How To determine DDIC Check Table, Domain and Get Table Field Text Data For Value?

     How To determineDDIC Check Table, Domain and Get Table Field Text Data For Value? 1.Get Table Fie ...

  2. OpenCV+VS2013 属性表配置

    简介 计算机视觉任务越来越多的依赖著名的开源计算机视觉库OpenCV.OpenCV 2.0 包含了一系列精心设计数据结构和经过优化的视觉算法,大家可以短时间内开发一个不错的视觉应用.OpenCV支持多 ...

  3. postgresql 登录查看表定义

    su - postgres psql \connect database_name; \d table_name

  4. python转lua最容易掉进去的坑--作用域

    你以为会依次打印2,4,8吗? 错. 2,2,2 value = 1 for i=1,3 do local value = value*2 print(value) end 你以为打印1吗?,错,输出 ...

  5. How to work with my desktop and laptop

    introduction Two years ago, I got a laptop Lenovo Y500, I am still using it now. Recently, I bought ...

  6. JAVA面向对象-----匿名内部类

    匿名内部类 匿名内部类:就是没有类名字的内部类. 匿名内部类作用:简化内部类书写. 匿名内部类的前提:必须继承一个父类或者是实现一个接口. 匿名内部类的格式: new 父类或者接口(){ 执行代码-. ...

  7. Linux下的一些常用命令(一)

    在Linux环境下敲各种命令是再正常不过了,尤其是现在大多少服务器均为Linux系统,但是我又记不住这么多命令,只是偶尔在项目做完发布到服务器上的时候会涉及到,所以在网上找了一些命令,在此记录一下~ ...

  8. 剑指offer面试题5 从头到尾打印链表(c)

  9. JVM学习之-栈

    JVM栈解决程序的运行问题,即程序如何执行,或者说如何处理数据;JVM堆解决的是数据存储的问题,即数据怎么放.放在哪儿,另外JVM堆中存的是对象.JVM栈中存的是基本数据类型和JVM堆中对象的引用. ...

  10. javascript命名规则

    javascript对大小写敏感(关键字.函数名.变量名等),标识符的首字符必须是字母.下划线或者$符,其后的字符可以含数字 如果之声明了变量,并未对其赋值,默认为undefined javascri ...