每隔20次在新行中打印数组的值

时间:2016-04-03 21:31:23

标签: java arrays printing

我必须制作一个程序,其中生成了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");
        }
    }

如果有人能帮我解决这个问题,我真的很感激。

3 个答案:

答案 0 :(得分:2)

这是你的情况应该是什么样的

if (i % 20 != 0 || i == 0)

如果是i % 20 == 0,你应该换一个新行,但在第一种情况下不应该换{({1}})

简化

0 % 20 == 0

答案 1 :(得分:1)

首先,请使用printlnSystem.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] + " ");

        }

    }