Как вывести последний нулевой элемент..Как сделать программу?
В заданном массиве К (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);
}
}
Вариант с учетом того что может быть больше одного нулевого элемента.