我必须制作一个程序,其中生成了1到100之间的200个随机数。
// Create an array to generate 200 numbers
int Numbers [] = new int [200];
// Create an array to split the numbers up into 5 categories
int Count [] = new int [5];
// Start a new loop
for (int i = 0; i < Numbers.length; i++) {
// Generate numbers between 1 and 100
Numbers [i] = (int) (Math.random () * 100) + 1;
}
// Sort the array from least to greatest
Arrays.sort(Numbers);
这就是我所遇到的问题(我相信)。
每20行,程序应显示一个新行,然后继续打印其余数字。
我的问题是,似乎并非所有数字都在打印...我只会从生成的200个数字中打印出190个数字。
// Start a new loop
for (int i = 0; i < Numbers.length; i++) {
if (i % 21 != 0) {
System.out.print(Numbers [i] + " ");
}
else {
System.out.print(Numbers [i] + "\n");
}
}
如果有人能帮我解决这个问题,我真的很感激。
答案 0 :(得分:2)
这是你的情况应该是什么样的
if (i % 20 != 0 || i == 0)
如果是i % 20 == 0
,你应该换一个新行,但在第一种情况下不应该换{({1}})
0 % 20 == 0
答案 1 :(得分:1)
首先,请使用println
或System.lineSeparator()
(因为'\n'
不是每个平台上的行分隔符)。您还需要为每20个号码使用% 20 == 0
。像,
for (int i = 0; i < Numbers.length; i++) {
if (i % 20 == 0) {
System.out.println();
} else {
System.out.print(" ");
}
System.out.print(Numbers[i]);
}
或使用类似
的三元组for (int i = 0; i < Numbers.length; i++) {
System.out.print(i % 20 == 0 ? System.lineSeparator() : " ");
System.out.print(Numbers[i]);
}
最后,通过约定,Java变量以小写字母开头。因此,请将Numbers
重命名为小写,例如numbers
。
答案 2 :(得分:-1)
for (int i = 1; i <= Numbers.length; i++) {
//
if (i >= 19 && i % 20 == 0) {
//
System.out.print(Numbers[i - 1] + "\n");
}
//
else {
//
System.out.print(Numbers[i - 1] + " ");
}
}