Здравствуйте! Помогите пожалуйста написать программу.
Дан массив K= (-12,6,71,14,-31,6,0,21,4,72,16,0,72,4,-3). Разработать программу вычисления индекса второго элемента массива, равного нулю, а также суммы отрицательных элементов, ему предшествующих
JavaScript
Программа по вычислению индекса элемента массива в джава
Если ты точно имеешь ввиду Java, а не Javascript, то вот код (для удобства я использовал Futures что является асинхронным кодом, потому компиляция должна быть на версии Java выше 16. Если потребуется - перепишу на Java 8):
import java.util.Arrays;
import java.util.concurrent.CompletableFuture;
public class ArrayTask {
public static void main(String[] args) {
int[] k = {-12, 6, 71, 14, -31, 6, 0, 21, 4, 72, 16, 0, 72, 4, -3};
CompletableFuture indexFuture = CompletableFuture.supplyAsync(() -> {
for (int i = 0; i < k.length; i++) {
if (k[i] == 0) {
return i;
}
}
return -1;
});
CompletableFuture sumFuture = indexFuture.thenApplyAsync(index -> {
if (index < 0) {
return 0;
}
int sum = 0;
for (int i = 0; i < index; i++) {
if (k[i] < 0) {
sum += k[i];
}
}
return sum;
});
CompletableFuture.allOf(indexFuture, sumFuture).join();
// если нужно, замени log на System.out.println
log("Массив: " + Arrays.toString(k));
log("Индекс 2-го нулевого элемента: " + indexFuture.join());
log("Сумма отрицательных элементов до 2-го нулевого элемента: " + sumFuture.join());
}
public static void log(String message) {
System.out.println(message);
}
}
Дмитрий Шахматов
ОГРОМНОЕ СПАСИБО!!!! Все работает :)
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList K = new ArrayList();
K.add(-12);
K.add(6);
K.add(71);
K.add(14);
K.add(-31);
K.add(6);
K.add(0);
K.add(21);
K.add(4);
K.add(72);
K.add(16);
K.add(0);
K.add(72);
K.add(4);
K.add(-3);
System.out.println(second(K));
}
public static ArrayList second(ArrayList arr) {
boolean zeroMet = false;
for (int i = 0; i < arr.size(); i++) {
if (arr.get(i) == 0) {
if (zeroMet) {
int zeroIdx = i;
int sumOfNegative = arr.subList(0, i).stream().filter(e -> e < 0).reduce(0, Integer::sum);
ArrayList result = new ArrayList();
result.add(zeroIdx);
result.add(sumOfNegative);
return result;
} else {
zeroMet = true;
}
}
}
return null;
}
}
Дмитрий Шахматов
Спасибо огромное за отклик!
Разрешите еще раз обратиться к вам. Джава тринкет выдает 20 ошибок. Можно посмотреть скриншот, как у вас эта программа выполняется?
Разрешите еще раз обратиться к вам. Джава тринкет выдает 20 ошибок. Можно посмотреть скриншот, как у вас эта программа выполняется?
Кайрат Умбетов
Добрый день, вопрос был размещен в категории в JavaScript, я не глядя вопрос решил ее именно на JavaScript. Этот Java код был собран конвертером из JavaScript.
Кайрат Умбетов
Такой, кажется, работает

Похожие вопросы
- напишите программу которая проверяет элементы массива на схожесть
- Разве сумму элементов массива таким способом (см) нельзя найти?
- Программирование Джава. Написать код на упорядочивание массивов.
- Поиск элементов в двумерном массиве
- Дан целочисленный массив размера N.Удалить из массива все элементы, встречающиеся менее трёх раз
- Что не так делаю? Должно из импута элемент сверяться с элементом из массива а1
- Помогите избавиться от пустых значений в массиве.
- Как найти максимальное значение в массиве массивов?
- Как только с конца массива обрезать все пустые элементы? var arr = [0,,2,,,];
- вопрос про массивы