我必须创建一个10的数组大小并生成从0到100的随机数,包括0和不包括100.当我编写代码时,它会一直给我一个错误:
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:59 在BillyLancasterHw6.printArray(BillyLancasterHw6.java:23) 在BillyLancasterHw6.main(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个数字。
任何建议都会很棒。如果您可以参考文档中的哪个位置,我也可以找到答案。我是编程新手,我遇到了麻烦。
答案 0 :(得分:5)
您的增强型for
循环已经完成了从列表中提取随机数的工作;只是打印它。没有必要回到列表中。
System.out.printf("%2.2f%s", u, " ");
答案 1 :(得分:2)
我的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, " ");
}
答案 2 :(得分:-1)
也许我没有收到你的问题,但看看下面的代码是否有用。我不明白为什么你要使用双
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();
}
}