Написал код, для вывода количества положительных элементов. В чем ошибка?
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.