java数组打印[0]
我将要创建一个代码,生成一个数组中的up number。然后,创建另外两个数组,一个用于500以上的数字,另一个用于500以下的数字。每件事都是按照要排序的数字进行的。正如你在下面的表格中看到的,我只得到[0,0],即使有不同的值需要添加
我的问题是为什么?怎么办
我还想知道我怎样才能在结果中脱身
(必须是数组,而不是数组列表)
提前感谢=)
结果:
Random numbers:
[185, 406, 632, 72, 348, 771]
Antal big: 2
big: [0, 0]
Antal small: 4
small: [0, 0, 406, 0]
BUILD SUCCESSFUL (total time: 3 seconds)
代码:
Scanner user_input = new Scanner(System.in);
int nummer[];
int big = 0;
int small = 0;
System.out.print("Hur många slumptal i intervallet 0-999 önskas? ");
int x = user_input.nextInt();
nummer = new int[x];
System.out.println("\nHär är de slumpade talen: ");
for(int i = 0; i < x; i++)
{
Random rnd = new Random();
nummer[i] = (rnd.nextInt(1000));
if(nummer[i] > 499){
big++;
} else if (nummer[i] < 500){
small++;
} else {
System.out.println("Detta gick åt skogen");
}
}
System.out.println(Arrays.toString(nummer));
//RandomNumber highlow = new RandomNumber();
int biggest [];
biggest = new int[big];
for(int z = 0; z<big; z++){
if(nummer[z]>499){
biggest[z] = nummer[z];
}
}
int smallest [];
smallest = new int[small];
for(int y = 0; y<small; y++){
if(nummer[y]>500){
smallest[y] = nummer[y-1];
}
}
System.out.println("Antal big: " + biggest.length);
System.out.println("big: " + Arrays.toString(biggest));
System.out.println("Antal small: " + smallest.length);
System.out.println("small: " + Arrays.toString(smallest));
//highlow.min(nummer);
//highlow.high(nummer);
}
}
# 1 楼答案
您的第二个和第三个for循环不正确。您只循环大数字和小数字的数量。此外,您不需要两个(或者实际上不需要任何一个)循环,但在这里,我尝试了清理一下:
顺便说一下,您的代码还有其他一些小问题。您需要一个数字大于500的数组和一个数字较小的数组(即499<;),但是你的假设是错误的。您还应该将
new Random()
部分移出循环