Написал код, для вывода количества положительных элементов. В чем ошибка?

package com.company;

public class Main {

    public static void main(String[] args) {
        final int size = 10;
        int[] myArr = {1, 8, -24, -3, 0, 2, 7, -8, -9, 3};
        int[] rez = new int[size];
        for (int v : myArr)
            System.out.print(v + " ");

        for (int i = 0; i < size; i++) {
            if (myArr[i] >= 0) {
                rez[i] = myArr[i];
            }
        }
        int s = rez.length;
        System.out.println();
        System.out.println(s);

    }
}

Объясните ошибки...


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

Автор решения: Igor
int countPositive = 0;
for (int i = 0; i < size; i++) {
    if (myArr[i] > 0) {
        countPositive++;
    }
}

System.out.println(countPositive);
→ Ссылка
Автор решения: Miron

Вы создаете массив фиксированной длины size, который наполнен значениями по дефолту(0 для int). Далее копируете лишь те ячейки из другого массива в соответствующую ячейку первого, которые >= 0. Потом получаете длину ФИКСИРОВАННОГО ПО ДЛИНЕ массива, которая равна size, который вы указали изначально. Итого его наполнение будет следующим:

{1, 8, 0, 0, 0, 2, 7, 0, 0, 3}

Решение - введите переменную, с помощью которой считайте кол-во ячеек, которые > 0. Сделать это можно способом, который предложил Igor.

→ Ссылка