Search code examples
javaarraysmethodssize

How to print only distinct integer values once even though they are repeated multiple times


I am trying to print only distinct integer values once even though they are repeated multiple times in an array with the introduced order. Firstly, I need to take array size from user but I cannot determine how to initialize that variable.Can I use n -inclueded in the code- as an array size variable? When I compiled I doesn't print anything. Where are my mistakes, and how to deal with them? Any idea?

public static void uniqueNumbers(int arr[], int n)
    {
        for (int i=0; i<n; i++)
        {
            for (int j =0; j<i;j++)
            {
                if (arr [i]==arr[j])
                    break;
            
            if (i==j)
                System.out.print(arr[i] + " ");
                
        }
    }
}

public static void main(String[] args) {
    Scanner sc =new Scanner(System.in);
    int n =sc.nextInt();
    int arr [] = new int [n];
    uniqueNumbers(arr,n);

}

}


Solution

  • You need to fill the array,that is, you need to take input for the array elements.

    public static void main(String[] args) {
    Scanner sc =new Scanner(System.in);
    int n =sc.nextInt();
    int arr [] = new int [n];
     //Add the following lines.
    for (int i = 0; i < n; i++) {
        arr[i] = sc.nextInt();
    }
    uniqueNumbers(arr,n);
    }
    

    Print the array and try your logic again.