2

这是课堂作业。我一直在阅读和搜索,一切都在告诉我使用 java.util.Random ,我了解它是如何工作的,并希望我可以使用它。但我的作业特别告诉我使用 (int) (Math.random * number) 我很难看到在哪里应用到我的数组中。我所看到的一切都是从java中提取的随机数。它是生成 100 个随机整数 0-9 以及它们出现的次数。如果有人可以提供帮助?我的错误是 - “main” java.lang.array index out of bounds exclude:10 中的异常,显然我的代码也有问题。

public class NumberOfTimes{

  public static void main(String[] args){

    int rand = (int)(Math.random() * 10);
    int[] counts = new int [10];

    for(int i = 0; i < 100; i++){

      counts[i]++;
    }//end for

    System.out.println("number\t" + "occurence ");

    for (int num = 0; num < counts.length; num++){

      System.out.println(num + "\t" + counts[num]);
    }//end for

  }//end main

}//end NumberOfTimes   
4

2 回答 2

1

做这个改变

int[] counts = new int[100];
for (int i = 0; i < counts.length; i++) {
    counts[i] = (int) (Math.random() * 10);
}// end for
于 2013-03-03T02:33:39.327 回答
0

您的数组只能容纳 10 个项目,并且在您的循环中您访问的项目超过 10 个。可以通过两种方式解决。

  • 要么增加你的数组长度

    int[] counts = new int [100];
    
  • 或者减少你在 for 循环中的计数。

    for(int i = 0; i < 10; i++){
    
于 2013-03-03T02:31:54.580 回答