阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 【说明】 有一种猜数字游戏,开始时程序随机产生四个不相同的个位数字(顺序固定),然后玩家输入猜测的四个数字。程序比较后给出提示,本次猜数字有几个数字完全正确,有几个数字数值正确但

admin2009-05-15  31

问题 阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。
   【说明】
   有一种猜数字游戏,开始时程序随机产生四个不相同的个位数字(顺序固定),然后玩家输入猜测的四个数字。程序比较后给出提示,本次猜数字有几个数字完全正确,有几个数字数值正确但是位置错误。玩家重复猜测直至结果完全正确。例如,程序生成“1234”,玩家猜测“1630”,则提示"位置正确的有:“1”个,位置错误的有:“1”个,完全错误的有“2”个。
   下面的两个Java函数是猜数字游戏里面使用的两个函数,第一个用于产生四个不相同的数字。第二个函数先判断输入是否合法,若合法则进行比较,并给出提示。
   【Java程序】
   ………………
   private String randNum()//产生答案数字
   {
       int[] digits={0,1,2,3,4,5,6,7,8,9};
       Random mum=new Random((new Date()).getTime());
       for(int i=0;i<10;i++)
       {
           int p=Math.abs(rnum.nextInt())%10;
           int tmp=digits[p];//tmp是临时存储数字的变量
             (1);
           digits=tmp;
           }
       return Integer.toString(digits[0])+Integer.toString(digits[1])
           +Integer.toString(digits[2])+Integer.toString(digits[3]);
   }
   String checkAnswer(String guess,Stdng answer)
   {
       if guess.length()!=4)return      "要输入4个数字!";
           int num=0;
           try{ num=(2);}    //判断输入是否是数字
           catch(NumberFormatException ex)
               {return "要输入数字!";}//catch
           int[]timesDigit={0,0,0,0,0,0,0,0,0,0};
           for(int i=0;i<4;i++){
               int ptr=num%10;
               num=num/10;
               if  (3)      //输入数字有重复
                   return "数字有重复!";
               }//for
               int a=0;
               int b=0;
               for(int j=0;j<4;j++)
               {
                   int pos=answer.indexOf(guess.substring(j,j+1));
                   if  (4)      //当前数字完全正确
                   a++;
                   else if(pos>=0)
                   b++;
                   }
               if  (5)      //答案完全正确
                   return "恭喜!答对了!!";
               else{
                   textAreaContent+= "位置正确的有:"+a+"个,位置错误的有:"+b+"
       个,完全错误的有"+(4-a-b)+"个\n";
                   return "继续努力";
                   }
       }
   ………………

选项

答案(1)digits[p]=digits[i]

解析 此处随机产生的实质上是一个数组下标值,用于和第i处数字交换,最后输出数组前四个数字,作为最终结果。
转载请注明原文地址:https://jikaoti.com/ti/mhW7FFFM
0

相关试题推荐
最新回复(0)