Помогите проверить программу на java и исправить ошибки

Scanner in = new Scanner(System.in);
int N, first;
int count = 0;
for (int i = 0; i <= N; i++) {
    System.out.println("enter number");
    first = in.nextInt();
    N = in.nextInt();
    if (N != first)
        count++;
    System.out.println(count);

Нужно было написать программу, которая не выводит первое число, которое написали.

Пример
ввод:
3 4 5 6 3

вывод:
4 5 6


Ответы (1 шт):

Автор решения: Nowhere Man

Если рассматривать оригинальный скриншот: введите сюда описание изображения

в нём просматриваются следующие проблемы:

  • ошибка компиляции: переменная num объявлена и инициализируется внутри первого цикла несколько раз, а обращение к ней выполняется внутри второго цикла, поэтому в первом цикле num отмечена серым цветом (неиспользуемая), а во втором цикле -- красным (вне зоны определения / видимости).

  • связанная логическая ошибка: числа в первом цикле будут считываться попарно и массив будет заполняться некорректно; для завершения цикла во входном потоке должно быть не 5 чисел, а 8, иначе цикл "зависнет" в ожидании ввода.

    Просто следовало определить переменную num перед первым циклом и прочитать первое входное значение один раз.

  • ещё одна логическая ошибка во втором цикле, итерация со второго элемента (for int i = 1; ...)

C учётом исправлений указанных моментов решение задачи может выглядеть как показано ниже, с предположением, что сначала вводится требуемое число, а после него массив ровно из 4 элементов. Также предположим, что действительно необходимо сохранить входные значения внутри массива:

Scanner in = new Scanner(System.in);

System.out.println("Enter 5 numbers");

int first = in.nextInt();

// всё же заведём массив, чтобы разнести ввод и вывод 
int[] arr = new int[4];

// ввод
for (int i = 0; i < arr.length; i++) {
    arr[i] = in.nextInt();
}

// отфильтрованный вывод с использованием улучшенного цикла for (for-each)
for (int n : arr) {
    if (n != first) {
        System.out.println(n);
    }
}

Результат:

Enter 5 numbers
3 4 5 6 3
4
5
6

→ Ссылка