2012-04-06 36 views
0

所以,我必須製作一個隨機數生成器來獲得範圍從0到400的數字。我將它們放入一個數組中,然後對它們進行排序。我只是不確定如何去做這件事。我得到了一些東西;用於鏈表分配的隨機數生成器方法

public int nextInt(400) //gives me errors 
{ 
    random.setSeed(12345L); 
    for (int i = 0; i < arr.size; i++) 
    { 
     val = random.nextInt(400); 
     a[i] = val; 
    } 
} 

我已經叫了隨機類,因爲方向表明。我只是不知道爲什麼這不起作用。這給了我特別是第一部分的錯誤;類,接口或枚舉。請有人引導我在正確的方向嗎?

+1

你有沒有嘗試過一個非常基本的教程,就像一個「你好世界」樣本?你似乎沒有如何編寫最瑣碎的程序的基礎知識。 – 2012-04-06 04:46:32

+0

我有,是的。我只是發佈了我被授予與之合作的作品。我從來不必使用隨機生成器,所以整個概念對我來說都是新的。我研究過它並研究過它,但它與我所得到的結果並不吻合。 – 2012-04-06 04:50:53

+1

您使用代碼時遇到的問題與您使用Random無關。現在把這種複雜性放在一邊。您尚未定義類,並且您的方法聲明有錯誤。這兩個問題都存在於引入Random之外。所以先解決這些問題,因爲你知道如何。 – 2012-04-06 04:51:57

回答

0

您需要在類定義中定義此功能

+0

我做到了。我已經實施了。我遇到的主要問題是「nextInt(400)」部分。我不確定爲什麼。這就是它在我的任務中寫的。 – 2012-04-06 04:52:31

+1

@Rachel:如果您已經實現了這個功能,您應該將您的問題更新爲您提供的代碼,並且您在問題中報告的錯誤消息表明您尚未在類中聲明該功能。你需要給我們一個[SSCCE](http://sscce.org)(一個完全重現你想要幫助解決的問題的自包含的代碼片段)。 – 2012-04-06 04:55:27

2

Java(所有編程語言)中的函數在其定義中具有「變量」。

你已經有了:

public int nextInt(400) 

在這裏,你想你的400是指被傳遞給函數的值。

認爲這是數學。我相信你已經處理了類似f(x) = 2 * x。在這裏,x是變量,並且您使用x的值「評估」f(x)。同樣,在編程中,我們會看到類似於:

public int nextInt(int x) 

正如您所看到的,我們的函數將x定義爲int類型。這在像Java這樣的語言中是必需的,因爲你告訴編譯器這個函數只接受x的整數。

現在你已經做到了,你可以在函數體中使用x作爲變量。

請注意,無論何時使用變量,首先必須定義變量。一行如:

int variable; 

將變量定義爲int。

您的程序缺少random,val,arra。這裏請注意,arra是數組(我知道它們不應該是兩個單獨的變量)。

在嘗試這個問題之前,你應該真正理解變量定義,數組和函數。你最好的資源將是你的教科書,因爲它會以有組織的,循序漸進的方式解釋一切。您也可以嘗試在線提供的許多教程。如果你有特定的問題,你可以隨時回到StackOverflow,我相信你會在這裏找到幫助。

祝你好運!

+0

謝謝!這有很大幫助。對此,我真的非常感激! – 2012-04-06 05:06:41

0

即使您已指定:

public int nextInt(400) 

在這一行函數返回INT,並在你的整個身體ü沒有任何return語句。

是的,因爲Kshitij Mehata建議不要直接使用400作爲那裏的值使用變量。

這應該是你的函數:

public int[] nextInt(int x) //gives me errors 
    { 
     random.setSeed(12345L); 
     int[] a=new int[arr.size]; 
     for (int i = 0; i < arr.size; i++) 
     { 
      val = random.nextInt(400); 
      a[i] = val; 
     } 
     return a; 
    } 

即使有一些問題與ARR從那裏這個改編來嗎?

+0

由於OP正在嘗試學習編程,並且這是作業,所以最好不要給他們代碼。相反,請解釋這些步驟,並讓他們自己解決問題。 – 2012-04-06 05:04:27

+0

我同意..我會記住它。 – 2012-04-06 05:11:13