2012-11-01 58 views
16

我正在創建一個程序,該程序在0和9之間生成100個隨機整數並顯示每個數字的計數。我用十個整數,計數,一個數組來存儲的0,1秒,...,787-9的數量)類中的方法不能應用於給定類型

當我編譯程序我得到的錯誤:

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

我在main方法中調用方法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 
+0

作爲一個側面說明,generateNumbers每次返回值時,我是0,所以它總是會跳出的循環並從不填充數組。 –

+0

另一方面說明:我想你還應該聲明你的數組數組的大小爲100,而不是99. ('int [] numbers = new int [100];') 否則,你將只打印99個數字。 –

回答

14

generateNumbers()期望一個參數,你沒有傳入一個參數!

generateNumbers()在設置第一個隨機數後也返回 - 似乎對它想要做什麼感到困惑。

+0

好的,所以我做到了,它工作正常,但是當我調用displayCounts方法時仍然產生錯誤?我嘗試了通過頻率,但沒有奏效... – user1368970

2

通話generateNumbers(numbers);,你generateNumbers();預計int[]爲你傳遞沒有一個argument ANS,從而錯誤

+0

好的,所以我這樣做,它的工作,但它仍然產生一個錯誤,當我調用displayCounts方法?我嘗試了傳球頻率,但那並沒有奏效。 – user1368970

相關問題