Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一个代码生成500个随机数,然后是第n个最小的_Java_Arrays_Sorting - Fatal编程技术网

Java 一个代码生成500个随机数,然后是第n个最小的

Java 一个代码生成500个随机数,然后是第n个最小的,java,arrays,sorting,Java,Arrays,Sorting,我能够在单独的代码中生成500个随机数b/w(100-1000)和第n个最小数,但无法遵循正确的逻辑在一个代码中同时执行,并按此顺序执行结果------>500个随机数,然后,生成的500个随机数中的第n个最小数 package SortNthDc; import java.util.Arrays; import java.util.Random; public class RandomNumbers { public static void main(String[] a

我能够在单独的代码中生成500个随机数b/w(100-1000)和第n个最小数,但无法遵循正确的逻辑在一个代码中同时执行,并按此顺序执行结果------>500个随机数,然后,生成的500个随机数中的第n个最小数

package SortNthDc;
import java.util.Arrays;
import java.util.Random;
public class RandomNumbers {

          public static void main(String[] args) {

          Random rnum = new Random();
          int counter;
          int largest = numbers[0];
          int smallest = numbers[0];
          for (counter = 100; counter <= 500; counter++) {
          System.out.println(rnum.nextInt(1000));
           {
             for(int i = 1;  i<numbers.length; i++) {

                if(numbers[i]>largest) {
                     largest = numbers[i];
                 }
                 else if(numbers[i]<smallest) {
                     smallest = numbers[i];
                 }
          }
           System.out.println("List of array is: " + Arrays.toString(numbers));
           System.out.println("Largest numbers is : " +largest);
           System.out.println("Smallest number is : " +smallest);
        }
     }
  }
}         

Get this error : Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    numbers cannot be resolved to a variable
    numbers cannot be resolved to a variable
    numbers cannot be resolved to a variable
    numbers cannot be resolved to a variable
    numbers cannot be resolved to a variable
    numbers cannot be resolved to a variable
    numbers cannot be resolved to a variable
    numbers cannot be resolved to a variable

    at SortNthDc.RandomNumbers.main(RandomNumbers.java:11)
package-SortNthDc;
导入java.util.array;
导入java.util.Random;
公共类随机数{
公共静态void main(字符串[]args){
Random rnum=新的Random();
整数计数器;
int最大=数字[0];
int最小=数字[0];

对于(counter=100;counter我看不到变量“number”的声明。这可能是问题所在。

应该是这样的:

      Random rnum = new Random();
      int counter;
      int[] numbers = new int[ 500 ]; // you want 500 numbers ; so size should reflect that.
      numbers[0] = rnum.nextInt(1000); // Init First number
      int largest = numbers[0]; //Set it as largest
      int smallest = numbers[0]; // Set it as smallest
      for (counter = 1 ; counter <  500; counter++) 
      {
          numbers[counter ] = rnum.nextInt(1000); //Store numbers;
          largest = Math.max( largest , numbers[counter ] ); //Compare with previous largest
          smallest = Math.min( smallest , numbers[counter ] );  //Compare with previous smallest

      }
Random rnum=new Random();
整数计数器;
int[]numbers=newint[500];//您想要500个数字;所以大小应该反映这一点。
数字[0]=rnum.nextInt(1000);//初始化第一个数字
int最大=数字[0];//将其设置为最大
int minimate=数字[0];//将其设置为最小值
用于(计数器=1;计数器<500;计数器++)
{
数字[计数器]=rnum.nextInt(1000);//存储数字;
最大值=数学.max(最大值,数字[计数器];//与以前的最大值比较
最小值=Math.min(最小值,数字[计数器];//与之前的最小值比较
}

您可以这样做:

int start = 100;
        int end = 1001;
        int counter = 500;

        int smallest;
        int greatest;
        int randomInt ;

        int numbers [] = new int[counter];
        Random random = new Random(); 

        randomInt = random.nextInt(end-start) + start;
        numbers [0] = randomInt;

        smallest = randomInt;
        greatest = randomInt;


        System.out.println("0th Greatest : " + greatest + "\n");
        System.out.println("0th Smallest : " + smallest + "\n");

        for(int i=1;i<counter;i++) {

            numbers[i] = random.nextInt(end-start) + start;

            smallest = Math.min(smallest,numbers[i]);
            greatest = Math.max(greatest,numbers[i]);

            System.out.println("Random numbers: " + Arrays.toString(numbers) + "\n\n");
            System.out.println(i + "th Greatest : " + greatest + "\n");
            System.out.println(i + "th Smallest : " + smallest + "\n");

        }
int start=100;
int end=1001;
int计数器=500;
int最小;
int最大;
int-randomInt;
整数[]=新整数[计数器];
随机=新随机();
randomInt=random.nextInt(结束-开始)+开始;
数字[0]=randomInt;
最小值=随机数;
最大值=随机数;
System.out.println(“第0个最大值:+最大值+”\n);
System.out.println(“第0个最小值:+最小值+”\n”);

对于(int i=1;iYou没有声明
numbers
arrayNo,您甚至还没有声明此变量。在int计数器之后,我声明int[]numbers=null;我仍然在SortNthDc.RandomNumbers.main(RandomNumbers.java:12)处收到错误消息“线程中的异常”java.lang.NullPointerException你需要的是一本好的java书:@ScaryWombat对不起,我的不好,花了太多时间在
i
上;改成
counter
。酷,我会坚持
i
,但我很懒。