gegeda123 2016-12-15 07:38 采纳率: 0%
浏览 940
已采纳

一道关于C语言的题目求帮助!

1. 电脑随机产生1000—9999之间的数字(包括1000、9999);
提示:用rand函数,该函数在stdlib.h库中,并保证多次运行产生不同的随机数
2. 玩家每轮有七次猜数的机会,如果七次都没有猜到,则失败,判为0分;
3. 玩家每轮可以请求帮助,提问关于产生数字的信息,扣分细则如下;
4. 游戏以百分制形式,初始分为100,最后得分最多为赢家。
 帮助内容及扣分细则:
. 判断你所猜的数中各位数字对应位置正误情况,以R表正确,E表错误。若随机数是2537,而猜的数是1234,则输出EERE,代表猜的数第3位正确,第1,2,4位错误。
——扣当前分数的1/10
. 判断你所猜的数中正确数字是什么。若随机数是2537,而猜的数是1234,则输出有两个数字正确,它们是2,3。 ——扣当前分数的1/10

  • 写回答

2条回答 默认 最新

  • xiao_quande 2016-12-15 09:54
    关注

    我用java写了一个希望楼主可以参考一下 而写分数的计算可能有点偏差,楼主可以改一改分数的计算方法 互勉
    public static void main(String[] args) {

        int random_number=(int)(Math.random()*(9999-1000+1)+1000);//定义一个随机数
        String data=String.valueOf(random_number); //将随机数转化为 String类型 是一个字符串类型
        int number=7;//定义一个游戏的次数
        int score=100;//游戏的初始分数为100
        while(number>0){    //第一次游戏开始 会循环7次           
        System.out.println(random_number); //这次输出随机数 方便测试     
        System.out.println("请输入数字");//提醒玩家输入数字
        Scanner s = new Scanner(System.in);//java中的接收用户输入的类
        String str="";      //定义一个用于接收用户输入的字符串的str
        String position=""; //记录下玩家正确位置的数字
        str=s.next();       //接收用户输入的数字
        while(!str.matches("^\\d{4}$")){  //这里用正则表达式验证用户是否输入正确的数据,不能让玩家输入除了数字以外的符号
            System.out.println("输入格式有误,请重新输入 \n"); //如果玩家输错了 就提示
            str=s.next();           //重新接收玩家的输入的数字
        }   
        String results="";          //定义一个结果用于反馈用户输入正确与否
        for(int i=0;i<str.length();i++){
            if(data.charAt(i)==str.charAt(i)){  //比较玩家输入的数字与随机数之间是否相等
                results+="R";           //相等则正确 输出一个R
                int j=i+1;              //因为数字位置从0开始的 因此要加1
                position+=""+j;         //记录下数字正确的位置
            }else{
                results+="E";           
            }       
        }
        if(results.contains("E")){  //如果结果中村E 则有错误 应在分数中扣10分
            System.out.println("猜测中存在错误,结果为"+results);
            score=score-10;
            System.out.println("正确的位置有"+position+","+"分数:"+score);                                      
        }else{
            System.out.println("恭喜猜对全部数字,游戏结束");
            System.out.println(score);//如果玩家都输入正确就跳出循环,并显示最后分数
            break;
        }       
        number--;
        System.out.println("你还有"+number+"次机会");
        if(number==0){
            System.out.println("没有猜对,游戏结束!");
        }
    
    }
    
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题