Task: to find the number of different elements in the array. The first method works correctly, the second one does not work. Tell me, what's the reason? The second method looks simpler and more common option of counting.
int []arr = {3, 3, 5, 5, 5, 6, 7, 8, 8, 97}; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length-1; j++) { if(arr[j] > arr[j+1]){ int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } //первый способ int uniqueNumber = arr.length; // создаём переменную с начальным значение, равным размеру массива (предолагаем, что все уникальны значения) for(int i=1;i<arr.length;i++){ // пробегаемся по массиву if(arr[i-1]==arr[i]) uniqueNumber--; // если смежные элементы равны, то значение uniqueNumber уменьшаем на единицу } System.out.println(); System.out.println(uniqueNumber); //второй способ int count = 0; for (int i = 0; i < arr.length; i++) { if(arr[i]!=arr[i+1]) count++; } System.out.println(); System.out.println(count);