Вопрос задан 11.07.2023 в 05:04. Предмет Информатика. Спрашивает Горбунов Виктор.

Дан список вещественных чисел. Для каждого элемента списка напечатать число отрицательных

элементов, следующих за ним. ИЛИ после него - попробуйте две функции реализовать Java
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Гусаров Даниил.

Ответ:

public class Main

{

 public static void main(String[] args) {

 float[] myArray = {-1,2,4,5,-7,5,-2,1,4,-2};

     for(int i=0; i<myArray.length; i++)

     {

         beforeItems(myArray,i,myArray.length);

         afterItems(myArray,i,myArray.length);

     }

}

public static void beforeItems(float a[], int position, int lenght)

{

    int sum = 0;

 if (position != 0)

 {

        for(int i=position-1; i>=0; i--)

        {

            if (a[i]<0)

            {

                sum++;

            }

        }

 }

    position++;

 System.out.println("колличество отрицательных элементов до элемента №:" + position + " = " + sum);

}

public static void afterItems(float a[], int position, int lenght)

{

    int sum = 0;

    if(position != lenght-1)

    {

       for(int i=position+1; i<lenght; i++)

       {

           if (a[i]<0)

           {

            sum++;

           }

       }

    }

    position++;

    System.out.println("колличество отрицательных элементов после элемента №:" + position + " = " + sum);

}

}

Объяснение:


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот две возможные реализации данной задачи на Java:

  1. Решение с помощью цикла:
java
public static void printNegativeCounts(double[] arr) { int n = arr.length; for (int i = 0; i < n - 1; i++) { int count = 0; if (arr[i] < 0) { for (int j = i + 1; j < n; j++) { if (arr[j] < 0) { count++; } } } System.out.println("Для элемента " + arr[i] + " количество отрицательных элементов, следующих за ним: " + count); } }
  1. Решение с использованием стримов (начиная с Java 8):
java
import java.util.stream.IntStream; public static void printNegativeCounts(double[] arr) { IntStream.range(0, arr.length - 1) .forEach(i -> { int count = (arr[i] < 0) ? (int) IntStream.range(i + 1, arr.length) .filter(j -> arr[j] < 0) .count() : 0; System.out.println("Для элемента " + arr[i] + " количество отрицательных элементов, следующих за ним: " + count); }); }

Оба этих метода принимают вещественный массив и выводят на экран количество отрицательных элементов, следующих за каждым элементом списка, кроме последнего. Вы можете выбрать тот, который вам больше нравится или лучше соответствует вашим требованиям.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос