метод в классе не может быть применен к заданным типам

Я создаю программу, которая генерирует 100 случайных целых чисел от 0 до 9 и отображает количество для каждого числа. Я использую массив из десяти целых чисел counts для хранения количества 0, 1, ..., 9.)

При компиляции программы получаю ошибку:

RandomNumbers.java:9: ошибка: метод generateNumbers в классе RandomNumbers нельзя применить к заданным типам;
generateNumbers();

требуется: интервал []

найдено: сгенерировать числа();

причина: фактические и формальные списки аргументов различаются по длине

Я получаю эту ошибку для строк кода, которые я вызываю методами generateNumbers() и displayCounts() в основном методе.

    public class RandomNumbers {

       public static void main(String[] args) {

            //declares array for random numbers
        int[] numbers = new int [99];

        //calls the generateNumbers method
        generateNumbers();

        //calls the displayCounts method        
        displayCounts();
    }

    //***************************************************************** 

    private static int generateNumbers(int[] numbers){

        for(int i = 0; i < 100; i++){
            int randomNumber;
            randomNumber = (int)(Math.random() *10);
            numbers[i] = randomNumber;
        return randomNumber;
        }

    }

    //***************************************************************** 

    private static void displayCounts(int[] numbers){
        int[] frequency = new int[10];

        for(int i = 0, size = numbers.length; i < size; i++ ){
            System.out.println((i) + " counts = " + frequency[i]);
        }

    }//end of displayCounts

    }//end of class

person user1368970    schedule 01.11.2012    source источник
comment
В качестве примечания, generateNumbers возвращает значение каждый раз, когда i равно 0, поэтому он всегда будет выходить из цикла и никогда не заполнять массив.   -  person Evan Trimboli    schedule 01.11.2012
comment
Еще одно примечание: я думаю, вы также должны объявить свой массив чисел размером 100, а не 99. (int[] numbers = new int [100];) В противном случае вы будете печатать только 99 чисел.   -  person Florian Minges    schedule 01.11.2012


Ответы (5)


generateNumbers() ожидает параметр, а вы его не передаете!

generateNumbers() также возвращается после того, как он установил первое случайное число - кажется, есть некоторая путаница в том, что он пытается сделать.

person John3136    schedule 01.11.2012
comment
Итак, я сделал это, это сработало, но все еще выдает ошибку, когда я вызываю метод displayCounts? Я пытался передать частоту, но это не сработало... - person user1368970; 02.11.2012

вызовите generateNumbers(numbers);, ваш generateNumbers(); ожидает int[] как argument, а вы ничего не передавали, поэтому ошибка

person PermGenError    schedule 01.11.2012
comment
Итак, я сделал это, это сработало, но все еще выдает ошибку, когда я вызываю метод displayCounts? Я пытался передать частоту, но это не сработало... - person user1368970; 02.11.2012

В определении функции generateNumbers(int[] numbers) есть аргументы, (int[] numbers)которые ожидают массив целых чисел. Однако в основном generateNumbers(); не имеет аргументов.

Чтобы решить эту проблему, просто добавьте массив чисел к аргументам при вызове функцииgenerateNumbers() в файле main.

person Pratik Hazarika    schedule 28.06.2020

Я думаю, вы хотите что-то вроде этого. Форматирование отключено, но оно должно предоставить необходимую информацию.

   import java.util.Scanner;
public class BookstoreCredit 
{

   public static void computeDiscount(String name, double gpa) 
   {
      double credits;
      credits = gpa * 10;
      System.out.println(name + " your GPA is " +
         gpa + " so your credit is $" + credits);
   
   }

   public static void main (String args[]) 
   {
      String studentName;
      double gradeAverage;
      Scanner inputDevice = new Scanner(System.in);
      System.out.println("Enter Student name: ");
      studentName = inputDevice.nextLine();
      System.out.println("Enter student GPA: ");
      gradeAverage = inputDevice.nextDouble();  
      
      computeDiscount(studentName, gradeAverage);
   }
}
person TheCreatingCoder    schedule 10.09.2020

передать массив в качестве параметра при вызове функции, например

(generateNumbers(parameter),displayCounts(parameter))
person Ashwani Kumar Kushwaha    schedule 29.03.2021