C клавиатуры заполнен массив из 30 элементов. Составьте фрагмент программы для решения следующих задач:
1.Найти количество четных чисел.Для проверки использовать подпрограмму.
2.Найти среднее арифметическое двузначных чисел кратных 3, но не кратных 9. В случае если таких элементов нет вывести на экран -1.
3.Найти наибольшую длину цепочки четных элементов массива.
4. Удалить элемент массива и сдвинуть оставшиеся элементы. Номер удаляемого элемента вводится с клавиатуры.
5.Вывести на экран второй максимум массива

14 Окт 2019 в 06:45
164 +1
0
Ответы
1

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
int[] array = new int[30];
Scanner scanner = new Scanner(System.in);

// Заполнение массива
System.out.println("Введите элементы массива:");
for (int i = 0; i < array.length; i++) {
array[i] = scanner.nextInt();
}
// 1. Найти количество четных чисел
int evenCount = countEvenNumbers(array);
System.out.println("Количество четных чисел в массиве: " + evenCount);
// 2. Найти среднее арифметическое двузначных чисел кратных 3, но не кратных 9
double avg = calculateAverage(array);
if (avg == -1) {
System.out.println("Двузначных чисел кратных 3, но не кратных 9 в массиве нет");
} else {
System.out.println("Среднее арифметическое двузначных чисел кратных 3, но не кратных 9: " + avg);
}
// 3. Найти наибольшую длину цепочки четных элементов массива
int maxChainLength = findMaxChainLength(array);
System.out.println("Наибольшая длина цепочки четных элементов: " + maxChainLength);
// 4. Удалить элемент массива и сдвинуть оставшиеся элементы
System.out.println("Введите номер элемента для удаления:");
int indexToDelete = scanner.nextInt();
removeAndShift(array, indexToDelete);
// 5. Вывести на экран второй максимум массива
int secondMax = findSecondMax(array);
System.out.println("Второй максимум массива: " + secondMax);
}
public static int countEvenNumbers(int[] array) {
int count = 0;
for (int num : array) {
if (num % 2 == 0) {
count++;
}
}
return count;
}
public static double calculateAverage(int[] array) {
int sum = 0;
int count = 0;
for (int num : array) {
if (num >= 10 && num < 100 && num % 3 == 0 && num % 9 != 0) {
sum += num;
count++;
}
}
if (count == 0) {
return -1;
}
return (double) sum / count;
}
public static int findMaxChainLength(int[] array) {
int maxChainLength = 0;
int currentChainLength = 0;
for (int num : array) {
if (num % 2 == 0) {
currentChainLength++;
} else {
if (currentChainLength > maxChainLength) {
maxChainLength = currentChainLength;
}
currentChainLength = 0;
}
}
return maxChainLength;
}
public static void removeAndShift(int[] array, int index) {
if (index < 0 || index >= array.length) {
System.out.println("Некорректный индекс для удаления элемента.");
return;
}
for (int i = index; i < array.length - 1; i++) {
array[i] = array[i + 1];
}
array[array.length - 1] = 0;
}
public static int findSecondMax(int[] array) {
int max1 = Integer.MIN_VALUE;
int max2 = Integer.MIN_VALUE;
for (int num : array) {
if (num > max1) {
max2 = max1;
max1 = num;
} else if (num > max2 && num < max1) {
max2 = num;
}
}
return max2;
}

}

19 Апр 2024 в 11:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир