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 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥20 白日门传奇少一个启动区服和启动服务器的快捷键,东西都是全的 , 他们说套一个出来就行了 但我就是弄不好,谁看看,
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题