Распечатать массив с определенными условиями, как показано ниже в java

Массив вопросов - int[] arr = {1,2,3,4,5}

Сначала найдите средний элемент массива

Добавление 1-го элемента массива к правому ближайшему элементу среднего элемента, т.е. arr[0] + arr[3] = 1 + 4 = 5

Снова добавьте 2-й элемент массива к следующему правому элементу среднего элемента, т.е. arr[1] + arr[4] = 2 + 5 = 7

Распечатайте эти суммы до среднего элемента после того, как массив средних элементов должен печатать элементы как исходный массив и получить вывод как [5,7,3,4,5]

Примечание. Получите выходные элементы и измените их как исходные элементы массива, поэтому, если мы напечатаем исходный массив, т.е.

for (int i=0; i < arr.length; i++) {
    System.out.println(arr[i]); 
}

тогда вывод должен быть "5 7 3 4 5"

Я попробовал это, и я получил вывод, но как я могу преобразовать вывод в элементы массива и заполнить его пустым массивом и обратиться к исходному массиву

package javap;


public class Arraym {
    static void print (int arr[]) {
        int z = arr[arr.length / 2];

        int sum1 = 0;
        int sum2 = 0;
       
        for (int i = 0; i < arr.length/2; i++) {
            System.out.print(sum1= arr[i]+arr[i+z]) ;
        }
        for (int i = arr.length/2; i<arr.length; i++) {
            System.out.print(sum2=arr[i]);
        }
    } 

    public static void main(String[] args) {
        int arr[]= {1,2,3,4,5};
        print(arr);
    }
}

ты когда-нибудь думал arr[i] = arr[i]+arr[i+z]

experiment unit 1998X 04.04.2023 07:57
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В Java массивы передаются по ссылке. Таким образом, вы можете просто изменить его напрямую.

public class Arraym {
    static void print (int[] arr) {
        for (int i = 0; i < arr.length/2; i++) {
            int z = arr[arr.length/2];
            int sum1=arr[i]+arr[i+z];
            System.out.print(sum1);
            // Write to each element of the array
            arr[i] = sum1;
        }
        
        for (int i = arr.length/2; i<arr.length; i++) {
              int sum2=arr[i];
              System.out.print(sum2);
              // No need to write to array, since it already contains the correct value.
        }
    }
    
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        print(arr);
        
        System.out.println();
        for (int i : arr) {
            System.out.print(i); // prints 57345
        }
    }   
}

Примечание. Я внес в программу несколько дополнительных правок:

  1. В Java предпочитайте int[] variableint variable[]. Они одинаковы, но первый предпочтительнее, так как лучше описывает тип.
  2. Нет необходимости объявлять все переменные в начале функции. Переменные могут быть объявлены в любом месте функции и будут видны только внутри объявленного блока.
  3. Всегда делайте отступ/форматируйте свой код перед публикацией.

Другие вопросы по теме