2012-11-01 10 views
16

Tworzę program, który generuje 100 losowych liczb całkowitych od 0 do 9 i wyświetla liczbę dla każdego numeru. Używam tablicę dziesięciu liczb całkowitych, liczy, aby zapisać liczbę 0s, 1s, ..., 9s)metoda w klasie nie może być zastosowana do podanych typów

Kiedy kompilacji programu pojawia się błąd.

RandomNumbers.java:9: error: method generateNumbers in class RandomNumbers cannot be applied to given types;
generateNumbers();

required: int[]

found:generateNumbers();

reason: actual and formal argument lists differ in length

Otrzymuję ten błąd dla wierszy kodu, które nazywam metodami generateNumbers() i displayCounts() w metodzie głównej.

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 
+0

Na marginesie, generateNumbers zwraca wartość za każdym razem, kiedy jest 0, więc zawsze będzie wyskoczyć z i nigdy nie wypełniaj tablicy. –

+0

Inna uwaga: Myślę, że powinieneś również zadeklarować tablicę liczb o rozmiarze 100, a nie 99. ('int [] numbers = new int [100];') W przeciwnym razie wydrukujesz tylko 99 liczb. –

Odpowiedz

14

generateNumbers() oczekuje parametru i nie przekazujesz go!

generateNumbers() również zwraca po ustawieniu pierwszej liczby losowej - wydaje się być niejasne co do tego, co próbuje zrobić.

+0

OK, więc zrobiłem to, zadziałało, ale nadal wywołuje błąd, gdy wywołuję metodę displayCounts? Próbowałem przekazać częstotliwość, ale to nie zadziałało ... – user1368970

2

wezwanie generateNumbers(numbers);, twój generateNumbers(); spodziewa int[] jako argument ans ty przechodzących żaden, więc błąd

+0

OK, więc zrobiłem to, zadziałało, ale nadal wywołuje błąd, gdy wołam metodę displayCounts? Próbowałem przekazać częstotliwość, ale to nie zadziałało ... – user1368970