打印数组大小为20的随机数和以lndex数打印的数字

时间:2015-07-27 12:59:58

标签: java arrays random numbers location

问题:

编写一个程序来创建一个大小为20的数组来存储整数。然后,程序应该生成并插入1到7之间的随机数,包括数组。接下来,程序应该打印数组作为输出 一个简单的子集是一个数组的一部分,该数组由一组彼此相邻的4个元素组成。程序将生成0到19之间的随机数,表示数组中的位置(即索引号)。然后,程序应该打印该位置的4个元素。该程序应考虑阵列的边界。此程序没有用户输入。
 您的计划必须至少包括以下方法:
- insertNumbers,它将输入一个整数数组并将随机数存储在其中。 - computeLocation,它将生成位置随机数并返回它。

该程序的示例运行如下所示:

示例输出#1:
阵列:2 7 4 3 1 5 7 2 3 6 2 7 1 3 2 4 5 3 2 6
随机位置:2
子集:4 3 1 5

示例输出#2:
阵列:2 7 4 3 1 5 7 2 3 6 2 7 1 3 2 4 5 3 2 6
随机位置:18
子集:2 6 2 7

到目前为止我弄明白了:   公共课AssignmentQuestion3 {

public static int insertNumbers(int n1,int n2)
{
    int min = n1;
    int max = n2;        
    int randomNumber = min + (int) (Math.random() * (max-min)+1);
    return randomNumber;
}
public static int computeLocation(int l1,int l2)
{
    int min = l1;
    int max = l2;
    int computeLocation = min + (int) (Math.random() * (max-min) + 1);
    return computeLocation;
}

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
int array[] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

System.out.print("Arrays: ");
for(int i = 0; i < 20; i++)
{
    int random1 = insertNumbers(1, 7);
    array[i] = random1;
    System.out.print(array[i]+ " ");
}

2 个答案:

答案 0 :(得分:0)

计算1到7(含)之间的随机数的公式是错误的。它实际上是计算2到7(含)之间的随机数。您的公式中只缺少一个括号。

所以这个:

int randomNumber = min + (int) (Math.random() * (max - min) + 1);

应该是这样的:

int randomNumber = min + (int) (Math.random() * ((max - min) + 1));

因为乘法在加法之前完成,所以你的版本实际上等于:

int randomNumber = min + (int) ((Math.random() * (max - min)) + 1);

答案 1 :(得分:0)

有些评论可以帮助您:

A)

public static int insertNumbers(int n1,int n2)
{
    int min = n1;
    int max = n2;        
    int randomNumber = min + (int) (Math.random() * (max-min+1));
    return randomNumber;
}

这是一个非常好的方法,但它不是insertNumbers。将其重命名为generateIntBetween,并将其用作insertNumbers中的辅助函数。

B)

在你的作业中,它表示创建一个insertNumbers,它将整个数组作为一个参数并填充它。我不打算为你写,但标题应如下所示:

public static void insertNumbers (int[] array)

C)

int array[] ={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

相同
int array[] = new int[20];

int[] array = new int[20];

(我更喜欢后者)

d)

看起来你做得很好,完成了作业的第1步。 继续......下一步是创建一个方法&#39; computeLocation&#39;并且您可以使用自己的generateIntBetween