使用数组的Java彩票

使用数组的Java彩票,java,arrays,Java,Arrays,我必须创建一个彩票游戏,其中你随机生成六个中奖号码,模拟彩票。让用户输入六个数字,看看他们是否中了彩票 我做了很多,但现在我被卡住了。我对java真的很陌生,所以请原谅我。当它提示询问另一个号码时,它会这样做,但它仍然会为显示的自制彩票选择显示它。此外,当显示电脑抽奖的号码时,它们是重复的相同号码,而不是6号。柜台不太好用,可能有点小问题,但我想不出来。多谢各位 package arraysIntroduction; import java.util.Scanner; public clas

我必须创建一个彩票游戏,其中你随机生成六个中奖号码,模拟彩票。让用户输入六个数字,看看他们是否中了彩票

我做了很多,但现在我被卡住了。我对java真的很陌生,所以请原谅我。当它提示询问另一个号码时,它会这样做,但它仍然会为显示的自制彩票选择显示它。此外,当显示电脑抽奖的号码时,它们是重复的相同号码,而不是6号。柜台不太好用,可能有点小问题,但我想不出来。多谢各位

package arraysIntroduction;

import java.util.Scanner;

public class sizeQuestion {

public static void main(String[] args) {

    Scanner in = new Scanner (System.in);

    int [] user =new int [6];
    int i;
    //Fill user array 

        System.err.println("Welcome to Miwand's Lottery");
        System.out.println("Please enter your 6 desiered number to enter the lottery");
        System.out.println("Pick from 1 to 49");

    for (  i=0;i<user.length;i++) // gets numbers until it equals 6
    {
        System.out.println("Number:");

        user[i]= in.nextInt(); // Gets numbers from user

        while  (user[i] < 0 ) // if its a negative number tell user to enter again
        {
        System.err.println("Negative number, please enter again:");
        user[i]=in.nextInt();
        }

if (user[i] > 49) // if the number goes past 49 prompt again
{
    System.err.println("Please enter numbers from 1 - 49");
    }
}


    //print out the numbers generated
    for ( i=0;i < user.length; i++){
        System.out.print(+user[i]+ " ");    

    }

System.out.println(" ");

int[] lottery = new int[6];

int guesses;
int counter=0;
int j;
int x;
    {
for (j = 0; j < 6; j++) {
int randomNum = (int) (Math.random() *49 +1); // Random number created here.
for ( x = 0; x < j; x++) {
    if (lottery[x] == randomNum) // Here, code checks if same random number    generated before.
    {
        randomNum = (int) (Math.random() *49 +1);// If random number is same, another number generated.
    }
    lottery[j] = randomNum;
}
}



//prints out computer generated numbers

for (i = 0; i < lottery.length; i++){
for (x = 0; x< j; x++){
 System.out.print(lottery[i] + " ");
if (user[i] == lottery[x] ){
    counter++;
    }
}
}
    }
if (counter < 2){

    System.out.println("Try again!");
}

if (counter == 3){

    System.out.println("3 numbers matched! You won $300!");
}

if (counter == 4){

    System.out.println("4 numbers matched! You won 500!");
}

if (counter == 5){

    System.out.println(" 5 numbers matched! You won $1000!");
}

else if (counter == 6){

    System.out.println("JACCKKKPOOOOTTTTTTT!!!!!! YOU WIN 1 MILLION DOLLARS!");
    }
}
        }
包装排列介绍;
导入java.util.Scanner;
公共类大小相等{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int[]用户=新int[6];
int i;
//填充用户数组
System.err.println(“欢迎来到Miwand的彩票”);
System.out.println(“请输入您的6号号码以进入抽奖”);
System.out.println(“从1到49中选择”);
for(i=0;i 49)//如果数字再次超过49提示符
{
System.err.println(“请输入1-49之间的数字”);
}
}
//打印出生成的数字
对于(i=0;i
正如我在评论中所说的,您应该将print语句从内部循环移动到外部循环

您的代码应该如下所示:

for (i = 0; i < lottery.length; i++) {   // outer loop
    System.out.print(lottery[i] + " ");
    for (x = 0; x < j; x++) {            // inner loop
        if (user[i] == lottery[x]) {
            counter++;
        }
    }
}
(i=0;i 系统输出打印(彩票[i]+“”); 对于(x=0;x我发现您的程序中存在多个问题

首先,可以通过将print语句从内循环移动到外循环来解决打印输出问题

for (i = 0; i < lottery.length; i++) {
    System.out.print(lottery[i] + " ");
    for (x = 0; x < j; x++) {
        if (user[i] == lottery[x]) {
            counter++;
        }
    }
}
(i=0;i<0.length;i++)的
{
系统输出打印(彩票[i]+“”);
对于(x=0;x
此外,您没有正确分配第一个随机数,并且它始终使用默认值,即0

解决方案:

 for (j = 0; j < 6; j++) {
    int randomNum = (int) (Math.random() * 49 + 1); // Random number created here.
    for (x = 0; x < j; x++) {
        if (lottery[x] == randomNum) // Here, code checks if same random number    generated before.
        {
            randomNum = (int) (Math.random() * 49 + 1);// If random number is same, another number generated.
        }
    }
    lottery[j] = randomNum;
}
if (counter <= 2) {
   System.out.println("Try again!");
}
(j=0;j<6;j++)的
{
int randomNum=(int)(Math.random()*49+1);//此处创建的随机数。
对于(x=0;x
另外,您并没有检查计数器是否等于2

解决方案:

 for (j = 0; j < 6; j++) {
    int randomNum = (int) (Math.random() * 49 + 1); // Random number created here.
    for (x = 0; x < j; x++) {
        if (lottery[x] == randomNum) // Here, code checks if same random number    generated before.
        {
            randomNum = (int) (Math.random() * 49 + 1);// If random number is same, another number generated.
        }
    }
    lottery[j] = randomNum;
}
if (counter <= 2) {
   System.out.println("Try again!");
}

if(counter Java!=JavaScriptsorry what?Im new不清楚您实际上在问什么。请编辑问题,将其限制在一个特定的问题上,并提供足够的详细信息,以确定适当的答案。避免一次问多个不同的问题。将打印语句从内部循环移到外部循环