2012-01-19 33 views
3

我应该创建一个1000个整数的数组,然后编写一个方法来查找最大的int并将其打印出来。这是我到目前为止:如何用1000个随机生成的int创建一个数组?

public static int findLargest(int[] numbers){ 
    int largest = numbers[0]; 
    for(int i = 1; i < numbers.length; i++){ 
     if(numbers[i] > largest){ 
      largest = numbers[i]; 
     } 
    } 
    return largest; 
} 

首先,如何创建一个数组与1000随机生成的整数?我试过int[] array = new (int)(Math.random());,但我不知道如何让它做1000个随机数。其次,我如何打印结果?预先感谢您的帮助。

回答

2

目测它,你的findLargest方法看起来不错 - 它使用正确的方法。

要生成1000个数字的列表,您需要将数组初始化为1000个元素。现在你正在初始化它有一个随机数的元素,这不是你想要的。当您初始化号码是int [长度1000],你需要循环数组把一个随机数的过来。有些像

int [] numbers = new int[1000]; // generate a new int[] 

for (i = 0; i < number.length; i++) { 
    numbers[i] = xxxx; // generate a random number 
} 

你或许应该建立某种形式的init方法创建的原始阵列为你。您可以在main中调用它,获取对数组的引用,然后将该数组传递给find方法,然后打印结果。

你快到了。

+0

return语句是好的,这只是严重缩进。 –

+0

并使用Random.nextInt()。 – user949300

+0

@brendan thanx ...讨厌它时,代码格式不正确 – hvgotcodes

0

您可以使用Java的Random类生成随机整数。然后用随机整数填充数组,然后调用你的方法,将数组传递给它。

// Random number generator 
Random r = new Random(); 

// Create array of 1000 ints 
int[] intArr = new int[1000]; 

// Fill array with random ints 
for (int i = 0; i < intArr.length; i++) { 
    intArr[i] = r.nextInt(); 
} 

// Print result 
System.out.println(findLargest(intArr)); 
+0

你应该留下一些让学生真正去做的事情。 – hvgotcodes

1
int[] randArray = new int[1000]; 
for(int i = 0; i < 1000; i++){ 
    randArray[i] = (int)(Math.random()*1000); 
} 
System.out.println(findLargest(randArray)); 
+1

你在发布**第二个**答案10分钟后,你的答案是没有添加任何独特的东西。你应该删除它。 – hvgotcodes

+0

由于某些原因,每次运行它时都会一直打印100 ... – Brett

1
发现

最大int是使用java.util.Arrays.sort(int[]),然后打印数组的最后一个元件的另一种方法。

0

这个程序: -Uses ArrayList中存储的数字 -Uses集合到数字 -Uses通过ArrayList中循环来进行排序和使用的Math.random用随机数填充()。 - 印刷数量最多的是Arraylist。 我希望它能回答你的问题。 请给我们一个反馈

import java.util.ArrayList; 
import java.util.Collections; 

public class prac 
{ 
    public static void main(String args[]) 
    { 
     ArrayList<Double> MyArrayList=new ArrayList<Double>(); 


     for(int i=0;i<100;i++) 
     {    
      MyArrayList.add(Math.random()); 
     } 

     Collections.sort(MyArrayList); 


     for(int j=0;j<MyArrayList.size();j++) 
     { 
      System.out.println(MyArrayList.get(j)); 
     } 

     System.out.println("The largest Number is:"); 
     System.out.println(MyArrayList.get(-1+MyArrayList.size())); 

    } 

}

+0

如果您只是处理双打,则无需使用ArrayList。使用原始双精度可以获得更好的性能。不要忘了java.util.Arrays.sort() –

0

其实我有一个预先制作类,我设置为找到任何一组值的最大整数。你可以把这个类到你的项目,只是使用它在任何类,像这样:

 System.out.println(figures.getLargest(8,6,12,9,120)); 

这将返回值“120”,并将其放置在输出中。这里是方法的源代码,如果你有兴趣使用它:

公共类人物{

public static int getLargest(int...f) { 
    int[] score = new int[f.length]; 
    int largest=0; 
    for(int x=0;x<f.length;x++) { 
     for(int z=0;z<f.length;z++) { 
      if(f[x]>=f[z]) { 
       score[x]++; 
      }else if(f[x]<f[z]) { 

      }else { 
       continue; 
      } 
      if(z>=f.length) { 
       z=0; 
       break; 
      } 
     } 
    } 
    for(int fg=0;fg<f.length;fg++) { 
     if(score[fg]==f.length) { 
      largest = f[fg]; 
     } 
    } 
    return largest; 
} 

}

5
int n[] = {1,5,7,3}; 
    for(int i=0;i<n.length;i++){ 
     if(n[i] > n[0]){ 
     n[0] = n[i]; 
     } 
    } 
    System.out.println(n[0]); 
+0

谢谢你一个很好的简单的解决方案。 – cokedude