Search code examples
javaarraysmaxaverageminimum

Find minimum, maximum and average of random number in java


I need to randomize 1000 numbers, and I want to find the average of all the numbers, the smallest and the largest number, but I can't output it. Here is my code:

import java.util.Scanner;

public class Array1 {

    public static void main(String[] args) { 
        Scanner keyboard = new Scanner(System.in); 
        int sum = 0;
        int min;
        int max;
        double average;
        int number = 0;
        int[] A = new int[1000]; 
        for (int i = 0; i < A.length; i++) {
            A[i] = (int) (Math.random() * 100);
            System.out.print(A[i] + " ");
            if (((i + 1) % 10) == 0) {
                System.out.println();
            }
            sum = sum + A[i];
            average = sum / A.length;

            min = A[0];
            if (A[i] < min) {
                min = A[i];
            }
            max = A[0];
            if (A[i] > max) {
                max = A[i];
            }
        }

        System.out.println("The average value is:" + average);
        System.out.println("The minimum value is:" + min);
        System.out.println("The maximum value is:" + max);
    }
}

I don't know how to fix it.


Solution

  • If you initilize your variables that you print with the results (min,max,average) the program has to work, but you have some mistakes in the code, if you change that, everything must to be ok :)

    import java.util.Scanner;
    
    public class Array1 {
      public static void main(String[] args) {
      Scanner keyboard=new Scanner(System.in); 
      int sum=0;
      int min=0;
      int max=0;
      double average=0;
      int[] A = new int[1000]; 
      for(int i=0;i<A.length;i++)
      {
         A[i]=(int)(Math.random()*100);
         }
         min=A[0];
         max=A[0];
         for(int i=0;i<A.length;i++){
        System.out.print(A[i]+" ");
        if(((i+1) % 10) == 0){
            System.out.println();
         }
         sum=sum+A[i];  
         if (A[i]<min){
            min=A[i];
         }
         if (A[i]>max){
            max=A[i];
         }
      }
      average = sum / A.length;
      
      System.out.println("The average value is:"+ average);
      System.out.println("The minimum value is:"+ min);
      System.out.println("The maximum value is:"+ max);
    
        }
    }