C/C++知识点之用C语言实现一款猜数字游戏
小标 2018-08-27 来源 : 阅读 1634 评论 0

摘要:本文主要向大家介绍了C/C++知识点之用C语言实现一款猜数字游戏,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之用C语言实现一款猜数字游戏,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

/*
 最经典的猜数字游戏的例子来展示条件结构在程序中的作用,今天看到另外一种猜数字的玩法,也挺有趣: 这个游戏由三个人一起玩,
 一个人做主持人,心中默想一个1到100之间的数字,然后由其他两个人轮流猜,每次猜测之后,主持人就说出猜测的这个数比他心中
 的数字是大还是小,然后另外一个人根据这个信息继续猜测,如此轮流,最后谁猜中就算谁输了。(算赢了也可以) 这是一个相互挖坑
 让对方跳的过程,特别是最后几步,猜测范围越来越小,真是步步惊心,稍不留意,就踩到对方挖的坑里去了。

 ============================================================================
 Name        : numbergame1.c
 Author      : lixiaolong
 Version     : v1.0
 Copyright   : Your copyright notice
 Description : number of game in C, Ansi-style
 Encoding time:2013年10月31日11:09:41
 ============================================================================
 */

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>
#include <ctype.h>
int main()
{
    srand( time(NULL) );//随机数种子

    while(true)
    {
        int min = 1;
        int max = 100;//初始范围
        int count = 0;//猜测次数
        const int target = rand()%max + 1;//产生随机数的目标数
        while(true)
        {
            int guess = 0;
            printf("please input a number between %d and %d\n",min,max);
            fflush(stdin);//清空输入缓存,以便不影响后面输入的数。比如你逐个输入字符,他帮你缓冲掉你每输入一个字符后面所敲的回车键。否则回车也会被当成字符保存进去。
            scanf("%d",&guess);  // 获取猜测的数字
            ++count;

            if(guess < min || guess > max) //超出范围
            {
                printf("the input is out of %d - %d\n",min,max);
                continue;
            }
            else
            {
                if(target == guess) //猜中
                {
                    printf("YOU WIN!\nyou have guessed %d times in total.\n",count);
                     break;
                }
                else if(target > guess) //目标比猜的数字大
                {
                    min = guess;
                    printf("the target is larger than %d\n",guess);
                }
                else  //目标比猜的数字小
                {
                    max = guess;
                    printf("the target is less than %d\n",guess);
                }
            }
        }
        //本轮游戏结束,是否继续
        printf("Do you want to play again?(Y - yes,N - no)\n");
        fflush(stdin);
        char c = 'Y';
        scanf("%c",&c);
        if(toupper(c) != 'Y')
        {
            break;
        }
    }

    return 0;
}    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程