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 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题