簡體   English   中英

如何在數組大小為10的情況下生成最多100個隨機數

[英]How to generate random numbers up to 100 in an array size of 10

我必須創建一個10的數組大小並生成從0到100的隨機數,包括0和不包括100.當我編寫代碼時,它一直給我一個錯誤:

線程“main”中的異常java.lang.ArrayIndexOutOfBoundsException:59位於BillyLancasterHw6.main的BillyLancasterHw6.printArray(BillyLancasterHw6.java:23)(BillyLancasterHw6.java:13)

這是我正在使用的代碼。

public class BillyLancasterHw6 {
  public static void main(String[] args){
    //int N = 10;
    double[] list = new double[10];

    for(int i = 0; i < list.length; i++) {
      double randomNumber = (Math.random() * 100);
      list[i] = randomNumber;
  }
  printArray(list);
  //sort(list);
  //System.out.println();
  //printArray(list);       
  }

  public static void printArray(double[] list) {
    for(double u: list) {
      System.out.printf("%2.2f%s", list[(int) u], " ");
    }
  }
}

我不明白為什么我不能在大小為10的數組中生成高達100的隨機數。這意味着在0到100之間隨機生成10個數字。

任何建議都會很棒。 如果您可以參考文檔中的哪個位置,我也可以找到答案。 我是編程新手,我遇到了麻煩。

你的增強型for循環已經完成了從列表中提取隨機數的工作; 只是打印它。 沒有必要回到列表中。

System.out.printf("%2.2f%s", u, " ");

我的java有點生疏,但是:

for(double u: list) {
  System.out.printf("%2.2f%s", list[(int) u], " ");
}

看起來很可疑。 那這個呢:

for(double u: list) {
  System.out.printf("%2.2f%s", u, " ");
}

也許我沒有得到你的問題,但看看下面的代碼是否有效。 我不明白為什么你使用雙

public class BillyLancasterHw6 {

public static void main(String[] args)
{

    int[] randomNumber = new int[10];

    for(int i = 0; i < randomNumber.length; i++)
    {
      randomNumber[i] = (int)(Math.random() * 100);

      System.out.print(randomNumber[i]+" , ");
    }
    System.out.println();
  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM