У меня проблемы с передачей массива между методами, и ниже приведен фрагмент кода.
Я успешно создал два массива, computerDice
и humanDice
, и теперь мне нужно подсчитать количество единиц, двойок, тройок и т. Д. В каждом массиве.Смотрите пример под кодом.Я подтвердил, что а.) Что входные массивы содержат действительные данные и б) счетчик работает правильно.
Однако сейчас я пытаюсь вернуть occurences
в виде массива - шесть различных значенийиз occurence
, представляющих единицы, пары, тройки и т. д. в массиве, отправленные методу - и не увенчались успехом.У меня продолжают возникать проблемы с моими occurence
return ... несовместимыми типами, плохой операнд, напечатанный для операнда + ..., и я получаю что-то свое в каждой попытке.Я явно что-то упускаю из-за того, как привести / заполнить эту переменную.
ПРИМЕЧАНИЕ: это домашняя работа;Я просто пытаюсь понять мои концептуальные ошибки.
// SEND VALUES TO numToFind AND CREATE SCORING ARRAY FOR computerDice AND humanDice
for(int i=1;i<7;i++)
{
int[] pipCountsComputer = findVals(computerDice,i);
int[] pipCountsHuman = findVals(humanDice,i);
System.out.println(i + " " + pipCountsComputer + " " + pipCountsHuman);
}
}
//
// COUNT INSTANCES OF numToFind IN arr[] AND RETURN THE occurence
public static int[] findVals(int[] arr, int numToFind)
{
int[] occurence=0;
for (int i = 0; i < arr.length; i++)
{
if (arr[i] == numToFind)
occurence = occurence+1;
}
return occurence;
}
Я уже подтвердил это, например, учитывая computerArray
= 52334
и humanArray
= 11163
мой отпечатокоператоры дают:
1 0 3
(единиц, у компьютера 0 единиц, у человека 3 единицы)
2 1 0
(двойки, у компьютера 1 двойка, у человека 0 двойок)
3 2 1
и т. д.
4 1 0
Мои желаемые массивы для этого набора данных:
5 1 0
pipCountsComputer{0,1,2,1,1,1}
6 0 1
pipCountsHuman{3,0,1,0,0,1}