Как вывести последний нулевой элемент..Как сделать программу?

В заданном массиве К (13) найти сумму элементов, расположенных перед последним нулевым элементом. Значения элементов массива задать в диапазоне [-8,23]. Вывести номер последнего нулевого элемента и сумму.


import java.util.Arrays;
// создание класса Mass2
public class Mass2 {
public static void main (String [] args)
{
// Создание массива на 13 цифр
int [] Z;
Z = new int [13];
for (int i = 0; i <Z.length; i ++) {
// Создание массива на 13 случайных чисел в диапазоне [-8,23]
Z [i] = -8 + (int) (Math.random () * 24)
// вывод входного массива с отступлением "" между элементами массива
System.out.print (+ Z [i] + "");
}
System.out.println ();
int sum = 0;
int Sum = 0
for (int i = 0; i <Z.length; i ++)

{
if (Z [i] == 0)


{
Sum = sum;
}
else
{
sum + = Z [i];
}

}
System.out.println ( "Сумма:" + Sum)

}

        }

Ответы (3 шт):

Автор решения: Дмитрий

Вам не кажется, что для такой простой задачи у вас слишком много кода? Вот вам реализация для генерации массива и расчета суммы элементов, а поиск индекса последнего нулевого элемента напишите сами (это уж слишком просто).

import java.util.Arrays;

public class Mass2 {
    public static void main(String[] args) {        
        int[] randomArray = new java.util.Random().ints(13, -8, 23).toArray();        
        System.out.println(Arrays.toString(randomArray));        
        System.out.println("Сумма:" + Arrays.stream(randomArray).sum());        
    }
}
→ Ссылка
Автор решения: Pavel Seletkov
        int [] Z;
        Z = new int [13];
        for (int i = 0; i <Z.length; i ++) {
        Z [i] = -8 + (int) (Math.random () * 24);
        System.out.print (+ Z [i] + " ");
        }
        System.out.println ();
        int LastNonZeroIndex = 0;
        int Sum = 0;
        for (int i = 0; i <Z.length; i ++)
        {
            if (Z [i] == 0)
            {
                if (i > 0) {
                    LastNonZeroIndex = i-1; //Запоминаем индес
                } else {
                    LastNonZeroIndex = 0; //первый же элемент является нулевым!
                }
                break; //Немедленно завершаем цикл, чтобы не трогать последующие элементы 
            }
            else
            {
                Sum += Z [i];
            }   
        }
        System.out.println ( "Сумма: " + Sum);
        System.out.println ( "Индекс не нулевого элемента:" + LastNonZeroIndex);
→ Ссылка
Автор решения: AlekseiGaile
    // создание класса Mass2
    public class Mass2 {
    public static void main(String[] args) {
// Создание массива на 13 цифр
        int[] z;
        z = new int[13];
        for (int i = 0; i < z.length; i++) {
// Создание массива на 13 случайных чисел в диапазоне [-8,23]
            z[i] = -8 + (int) (Math.random() * 24);
// вывод входного массива с отступлением "" между элементами массива
            System.out.print(z[i] + " ");
        }
        int sum = 0;
        int index=0;
        int result = 0;
        for (int i = 0; i < z.length; i++) {
            sum += z[i];
            if (z[i] == 0) {
                result = sum;
                index = i;
            }
        }
        if (result == 0) {
            result = sum;
        }
        System.out.println();
        System.out.println("Сумма:" + result + " Индекс: " + index);
    }
}

Вариант с учетом того что может быть больше одного нулевого элемента.

→ Ссылка