2012-04-06 105 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