Member 13390616 Ответов: 2

Определено время пользователя и конкретную сумму, используя цикл


Возьмите массив определенного пользователем размера и введите все значения от пользователя, которые печатают сумму 1-го и последнего элемента , сумму 2-го и 2-го последнего элемента , сумму 3-го и 3-го последнего элемента и так далее, если массив имеет четный размер и если размер массива нечетный, то выведите среднее значение как есть. Мне нужен код для этой конкретной проблемы на java?

Что я уже пробовал:

package try5;

import java.util.Scanner;

public class Try5 {

    public static void main(String[] args) {
    int length,sum = 0;
    Scanner  num= new Scanner(System.in);
    
    System.out.println("Enter the total numbers in an array:");
    length = num.nextInt();
    
    int[] array = new int[length];
    for(int i=0; i<length; i++){
        System.out.println("Values::");
        array[i] = num.nextInt();
    }
    
        for(int h=0; h<length; h++){
            
        for(int t=1; t>h; t--){
        sum = array[h]+array[length-t];
        System.out.println("sum:" +sum);
        sum = array[h+1]+array[length-t-1];
        System.out.println("sum:" +sum);}   
    }
}
}

2 Ответов

Рейтинг:
18

Jochen Arndt

Вам не нужны две петли. Просто используйте один цикл while с двумя переменными:

int first = 0;
int last = length - 1;
while (first <= last)
{
    if (first < last)
        System.out.printf("%d. sum: %d%n", first + 1, array[first] + array[last]);
    else
        System.out.printf("%d. mid: %d%n", first + 1, array[first]);
    first++;
    last--;
}

Вы также можете использовать for вместо этого выполните цикл (итерацию по половине длины) и вычислите последний индекс внутри цикла:
for (int first = 0; first < (length + 1) / 2; first++)
{
    int last = length - 1 - first;
    if (first < last)
        System.out.printf("%d. sum: %d%n", first + 1, array[first] + array[last]);
    else
        System.out.printf("%d. mid: %d%n", first + 1, array[first]);
}


Рейтинг:
10

OriginalGriff

Цитата:
Мне нужен код для этой конкретной проблемы на java?

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

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

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Member 13390616

Где я должен вставить оператор if else?
Почему второй цикл не работает? он просто берет сумму один раз.
Как получить доступ к среднему номеру?
Пожалуйста, ответьте!

OriginalGriff

Что происходит, когда вы используете отладчик, чтобы увидеть, что происходит?
Что он тебе показал?