制作打印数组的方法(java中的新手)

时间:2013-11-17 17:50:05

标签: java arrays methods

我是Java的新手,我得到了一些练习。知道如何解决这个小问题吗?

  1. 创建一个由100到500的100个随机整数组成的数组,包括终点。
  2. 制作一个打印数组的方法,每行5个数字,每个数字之间留一个空格。
  3. 制作一个方法来打印数组中最小的数字。
  4. 到目前为止,这是我前两部分所得到的,但我似乎没有工作,请帮助,抱歉这些愚蠢的问题...

    package randomhundred;
    
    import java.text.DecimalFormat;
    
    public class RandomHundred {
        public static void main(String[] args) {
            //setting the 100 array
            int rand [] = new int [100];
            double numb;
            DecimalFormat dec = new DecimalFormat("0");
            for(int i=0; i<rand.length; i++){
                numb = Math.random() * (  500 - 100 );
            }  
        }
    
        public static int arai (){
            return System.out.print(" " + dec.format(numb) + " ");
        }    
    }
    

3 个答案:

答案 0 :(得分:1)

让步骤1正确....生成100个随机值。

你的过程几乎就在那里......但是:

  1. 它不会生成int值,因此您无法将其存储在int[]数组中。
  2. 它永远不会生成值500
  3. 要将随机数转换为整数,请尝试以下操作:

    int numb;
    ....
        numb = (int)(Math.random() * (  500 - 100 ));
    

    但是,这不会生成值500(因为500 - 100是400,但实际上需要生成401个数字....),所以将其更改为(参见How do I generate random integers within a specific range in Java?):< / p>

       numb = 100 + (int)(Math.random() * (  (500 - 100)  + 1))
    

    现在我们有100到500(含)之间的随机数,你现在需要将它们存储在你的数组中:

    rand[i] = numb;
    

    一旦你有了工作,回来我们就可以解决其他问题。

    直到那时,你可以打印出你的数组:

    System.out.println(Arrays.toString(rand));  // Arrays is java.util.Arrays
    

答案 1 :(得分:0)

我会尝试为您的问题提供一些伪代码:

// Task 1
Declare array of 100 ints (I will relate to 100 later on with n). 
Fill array with random integers between 100 and 500 including borders

提示代码:100 + new Random().nextInt(401),401作为上限是独占的,它产生最大结果:100 + 400 - &gt; 500和最小值:100 + 0 = 100.即使这将产生100个数字,如果你将随机实例存储在某处并重新使用它会更快,但这是一个优化步骤。

// Task 2
for i = 0; i < n; i++
    print integer from array
    add space
    if i is divisible by 5 then
        add new line
    end-if
end-for

//Task 3
declare a min of the maximum value which is possible: in this case your maximum random number of 500
loop through the list checking for smaller numbers
after loop has finished print the last number

我希望这很清楚,你可以了解如何做到这一点。

答案 2 :(得分:0)

广告。 1 为了完整起见(其他人已经解释过):

for(int i=0; i<rand.length; i++){
    rand[i] = 100 + (int)(Math.random() * (  401 ));
} 

广告。 2 这是错的:

public static int arai (){
    return System.out.print(" " + dec.format(numb) + " ");
} 

返回类型是int,但System.out.print()不返回任何内容,因此将int更改为void并删除return关键字。接下来,您需要遍历整个数组:

public static void arai (){
    for (int i=0; i< 100; i++) {
        //this is modulo, which means that if i divided by 5 has no remainder, print next line
        //eg. 5%2 = 1, because 2*2 + 1 = 5
        //5%3 = 2 and so on, read here http://en.wikipedia.org/wiki/Modulo_operation
        if (i%5 == 0) {
            System.out.println();
        }

        //finally, print each value from rand array
        System.out.print(rand[i] + " ");
    }
}

广告。 3 试试自己,如果遇到问题就卷土重来,但要遵循Johnnei关于找到最小数字的建议。

注意:您还需要将rand数组声明设置为全局,以便arai()方法可以使用它。