Сравнение ответов (не в массиве) - PullRequest
0 голосов
/ 23 мая 2018

Как вы говорите Java печатать значение совпадающих чисел, которые генерируются случайным образом.Например, если вывод равен 3,3,7: система должна распечатать «У вас есть два 3».

    int r1 = (int) (Math.random()*6) +1;
    int r2 = (int) (Math.random()*6) +1;
    int r3 = (int) (Math.random()*6) +1;


    System.out.print("Your numbers are " + r1 + r2 + r3);

    if (r1 == r2 && r2 ==r3 )
        System.out.print(": You got all" + r1 + "'s");
    else if (r1 == r2 || r2 == r3 || r1 == r3)
        System.out.print(": You got two" + "'s");
    else if (r1 != r2 && r2 != r3)
        System.out.print(": NO MATCHES!");
    else {

    }

Ответы [ 4 ]

0 голосов
/ 23 мая 2018

Решение: разбить случайный номер присвоения двух чисел на три части.

int r1 = (int) (Math.random()*6) +1;
int r2 = (int) (Math.random()*6) +1;
int r3 = (int) (Math.random()*6) +1;


System.out.print("Your numbers are " + r1 + r2 + r3);

if (r1 == r2 && r2 ==r3 )
    System.out.print(": You got all" + r1 + "'s");
else if (r1 == r2)
    System.out.print(": You got two" + r1 + "'s");
else if (r2 == r3)
    System.out.print(": You got two" + r2 + "'s");    
else if (r1 == r3)
    System.out.print(": You got two" + r1 + "'s");
else if (r1 != r2 && r2 != r3)
    System.out.print(": NO MATCHES!");
0 голосов
/ 23 мая 2018

Вы должны очистить свой код ...

Код, который вы предоставили, не компилируется.Логика кажется нормальной, хотя.

package stackoverflow;

public class main {

    public static void main(String[] args) {
        int r1 = (int) (Math.random()*6) +1;
        int r2 = (int) (Math.random()*6) +1;
        int r3 = (int) (Math.random()*6) +1;


        System.out.print("Your numbers are " + r1 + r2 + r3);

        if (r1 == r2 && r2 ==r3 )
            System.out.print(": You got all " + r1 + "'s");
        else if (r1 == r2 || r2 == r3 || r1 == r3)
            System.out.print("numbers: " + r1 + " " + r2 + " " + r3);
        else if (r1 != r2 && r1 != r3) 
            System.out.print(": NO MATCHES!");
        else {

        }
    }
}

Это должно работать на основе вашего кода.

Обратите внимание, что вы называете переменные, которые не согласованы / не существуют.

0 голосов
/ 23 мая 2018

Решение, которое работает с любым количеством рулонов с использованием метода Collections.frequency, будет следующим:

List<Integer> list = Arrays.asList(roll1, roll2, roll3);
Set<Integer> set = new HashSet<Integer>(list);

for (Integer i : set)
{
    System.out.println(i + ": " + Collections.frequency(list, i));
}

Преобразуйте свои рулоны в список, составьте его (в наборе нет повторяющихся записей).).

Для каждого значения в наборе выведите, как часто значение присутствует в списке.Для рулонов 3, 3, 7 будет напечатано:

3: 2
7: 1
0 голосов
/ 23 мая 2018

Самое простое, что можно сделать:

    int roll1 = (int) (Math.random()*6) +1;
    int roll2 = (int) (Math.random()*6) +1;
    int roll3 = (int) (Math.random()*6) +1;


    System.out.print("Your numbers are " + roll1 + roll2 + roll3);

    if (roll1 == roll2 && roll2 == roll3 )
        System.out.print(": You got all" + s1 + "'s");
    else if (roll1 == roll2) 
        System.out.print(": You got two" + roll1 + "'s");
    else if (roll2 == roll3)
        System.out.print(": You got two" + roll2 + "'s");
    else if (roll1 == roll3)
        System.out.print(": You got two" + roll1 + "'s");
    else
        System.out.print(": NO MATCHES!");
...