2012-11-01 9 views
16

Sto creando un programma che genera 100 numeri interi casuali tra 0 e 9 e visualizza il conteggio per ciascun numero. Sto utilizzando una matrice di dieci interi, conta, per memorizzare il numero di 0, 1s, ..., 9s)metodo in classe non può essere applicato a determinati tipi

Quando compilo il programma ottengo l'errore:.

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

Ricevo questo errore per le righe di codice che chiamo i metodi generateNumbers() e displayCounts() nel metodo principale.

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

Come nota a margine, generateNumbers restituisce il valore ogni volta che i è 0, così sarà sempre saltare fuori dal loop e non riempire mai la matrice. –

+0

Un'altra nota a margine: suppongo che dovresti dichiarare anche la matrice di numeri 100, non 99. ('int [] numbers = new int [100];') Altrimenti stamperai solo 99 numeri. –

risposta

14

generateNumbers() si aspetta un parametro e non si sta passando uno in!

generateNumbers() restituisce anche dopo aver impostato il primo numero casuale - sembra essere una certa confusione su ciò che sta tentando di fare.

+0

Ok, l'ho fatto, ha funzionato, ma sta ancora producendo un errore quando chiamo il metodo displayCounts? Ho provato a passare la frequenza, ma non ha funzionato ... – user1368970

2

chiamata generateNumbers(numbers);, il vostro generateNumbers(); aspetta int[] come un argument ans si passavano nessuno, così l'errore

+0

Ok, quindi l'ho fatto, ha funzionato, ma sta ancora producendo un errore quando chiamo il metodo displayCounts? Ho provato a passare la frequenza, ma non ha funzionato ... – user1368970