Программирование на JAVA ,Помогите решить задачу В одномерном массиве, состоящим из n вещественных элементов, вычислить: Количество элементов массива, меньших С;Сумму целых частей элементов массива, расположенных после последнего отрицательного элемента.Преобразовать массив таким образом, чтобы сначала располагались все элементы, отличающиеся от максимального не более чем на 20%, а потом – все остальные
public static void main(String[] args) { double[] array = {1.2, -3.5, 5.8, 6.4, -2.9, 8.1, 2.7, -4.3}; double c = 4.0; // Находим количество элементов массива, меньших C int count = 0; for (double num : array) { if (num < c) { count++; } } System.out.println("Количество элементов массива, меньших C: " + count); // Находим сумму целых частей элементов массива, расположенных после последнего отрицательного элемента int sum = 0; boolean foundNegative = false; for (int i = array.length - 1; i >= 0; i--) { if (foundNegative) { sum += (int) array[i]; } else if (array[i] < 0) { foundNegative = true; } } System.out.println("Сумма целых частей элементов массива после последнего отрицательного элемента: " + sum); // Преобразовываем массив Arrays.sort(array); double max = array[array.length - 1]; int separator = (int) (0.2 * max); int i = 0; int j = array.length - 1; double[] newArray = new double[array.length]; for (double num : array) { if (num <= max - separator) { newArray[i++] = num; } else { newArray[j--] = num; } } System.out.println("Исходный массив: " + Arrays.toString(array)); System.out.println("Преобразованный массив: " + Arrays.toString(newArray)); }
import java.util.Arrays;
public class Main {
public static void main(String[] args) {double[] array = {1.2, -3.5, 5.8, 6.4, -2.9, 8.1, 2.7, -4.3};
double c = 4.0;
// Находим количество элементов массива, меньших C
int count = 0;
for (double num : array) {
if (num < c) {
count++;
}
}
System.out.println("Количество элементов массива, меньших C: " + count);
// Находим сумму целых частей элементов массива, расположенных после последнего отрицательного элемента
int sum = 0;
boolean foundNegative = false;
for (int i = array.length - 1; i >= 0; i--) {
if (foundNegative) {
sum += (int) array[i];
} else if (array[i] < 0) {
foundNegative = true;
}
}
System.out.println("Сумма целых частей элементов массива после последнего отрицательного элемента: " + sum);
// Преобразовываем массив
Arrays.sort(array);
double max = array[array.length - 1];
int separator = (int) (0.2 * max);
int i = 0;
int j = array.length - 1;
double[] newArray = new double[array.length];
for (double num : array) {
if (num <= max - separator) {
newArray[i++] = num;
} else {
newArray[j--] = num;
}
}
System.out.println("Исходный массив: " + Arrays.toString(array));
System.out.println("Преобразованный массив: " + Arrays.toString(newArray));
}
}