这是课堂作业。我一直在阅读和搜索,一切都告诉我使用java.util.Random,我了解它是如何工作的,并希望我可以使用它。但我的任务特别告诉我使用(int)(Math.random *数字),我很难看到在我的数组中应用的位置。我所看到的一切都是从java中随机抽取的。 生成100个随机整数0-9以及它们出现的次数。如果有人可以协助? 我的错误是 - “主”java.lang.array索引中的异常超出范围豁免: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
答案 0 :(得分:1)
进行此更改
int[] counts = new int[100];
for (int i = 0; i < counts.length; i++) {
counts[i] = (int) (Math.random() * 10);
}// end for
答案 1 :(得分:0)
你的数组只能容纳10个项目,而你的循环中你可以访问10个以上的项目。可以通过两种方式解决。
增加数组长度
int[] counts = new int [100];
或者减少for循环中的计数。
for(int i = 0; i < 10; i++){