Создать массив дробных (не целых) чисел размером 15 элементов и наполнить его положительными и отрицательными числами;
Затем через цикл “for each” посчитать среднее арифметическое положительных чисел расположенных после первого отрицательного числа и вывести его на экран
Java
Задали д/з не могу решить(
А что именно тут не понятно?
Продумай алгоритм по шагам.
1. Создаешь массив с числами
2. Пишешь цикл for each
3. В цикле проверяешь, число больше 0 или меньше.
- если число меньше 0, то нам нужно запомнить это. Для этого создадим переменную типа boolean ВНЕ цикла. По умолчанию она false. Если число меньше, чем 0, то превращаем ее в true.
- Делаем следующую проверку в цикле ПОСЛЕ предыдущей: если переменная из предыдущего шага = true, то нам надо начать сохранять положительные элементы. Создадим под это дело еще одну переменную типа List< Double >. Внутри этой проверки делаем проверку число больше 0 или нет. Если число больше, то добавляем его в лист положительных элементов.
4. Теперь у нас есть все положительные элементы, после того, как цикл закончится. Нужно их просуммировать ПОСЛЕ ЦИКЛА и поделить на количество элементов.
Вроде ничего сложного. Мой алгоритм может быть не эффективным, не совсем правильным, и вообще я спать хочу. Дорогу осилит идущий. Тут вам накидают красивых решений с кодом, но нужно учиться думать самому. Это сложно, но вы же хотите научиться программировать. А вообще лучше подобные вопросы задавать таким образом - вот моя задача, вот мой код, помогите найти ошибку. Иначе вы ничему не научитесь.
Продумай алгоритм по шагам.
1. Создаешь массив с числами
2. Пишешь цикл for each
3. В цикле проверяешь, число больше 0 или меньше.
- если число меньше 0, то нам нужно запомнить это. Для этого создадим переменную типа boolean ВНЕ цикла. По умолчанию она false. Если число меньше, чем 0, то превращаем ее в true.
- Делаем следующую проверку в цикле ПОСЛЕ предыдущей: если переменная из предыдущего шага = true, то нам надо начать сохранять положительные элементы. Создадим под это дело еще одну переменную типа List< Double >. Внутри этой проверки делаем проверку число больше 0 или нет. Если число больше, то добавляем его в лист положительных элементов.
4. Теперь у нас есть все положительные элементы, после того, как цикл закончится. Нужно их просуммировать ПОСЛЕ ЦИКЛА и поделить на количество элементов.
Вроде ничего сложного. Мой алгоритм может быть не эффективным, не совсем правильным, и вообще я спать хочу. Дорогу осилит идущий. Тут вам накидают красивых решений с кодом, но нужно учиться думать самому. Это сложно, но вы же хотите научиться программировать. А вообще лучше подобные вопросы задавать таким образом - вот моя задача, вот мой код, помогите найти ошибку. Иначе вы ничему не научитесь.
Дмитрий Морозов
спасибо, если что, я могу обратиться сюда за повторной помощью, если мне будет что то не понятно (в коменты под темой)
Владимир Козлов
конечно
Александр Александр Кусайко
Как вариант - пользоваться гуглом. Если вы наберете в поиске "посчитать среднее арифметическое положительных чисел расположенных после первого отрицательного числа", то найдете кучу разных реализаций.
я вам предложу решение, потому что судя по вашим ошибкам в синтаксисе вы даже с подсказками будете составлять код долго. У вас В инициализации массива ошибка . В задании требуется, чтобы в нем были положительные и отрицательные числа, у вас только положительные.
Ваш нужно изучать основы языка, рекомендую Шилдта Java 8 полное руководство
Это один из вариантов решения, второй вам предложили выше
Ваш нужно изучать основы языка, рекомендую Шилдта Java 8 полное руководство
Это один из вариантов решения, второй вам предложили выше
public class test {
public static void main(String[] args) {
double[] fractionalNums =
{1.5, 2.4, 5.3, -2.5, 4.1, 6.1, 7.4, -1.8, 8.1, 7.4, -5.9, 7.5, 6.2, 4.6, 9.9};
double average = 0.0;
int count = 0;
//внешний цикл, в нем перебираем числа, пока не дойдем до
//первого отрицательного числа
for (int a1 = 0; a1 < fractionalNums.length; a1++) {
//если во внешнем цикле достигли первого отрицательного числа,
//переходим во внутренний цикл,
//перебираем во внутреннем цикле оставшиеся числа массива
//и складываем только положительные числа
if (fractionalNums[a1] < 0) {
for (int a2 = a1 + 1; a2 < fractionalNums.length; a2++) {
if (fractionalNums[a2] > 0) {
average = average + fractionalNums[a2];
//тоже самое:
//average += fractionalNums[a2];
count++;
}
}
//после завершения внутреннего цикла
// дальше внешний цикл не нужен, выход
break;
}
}
//сумма положительных чисел массива
System.out.println("average " + average);
//количество положительных чисел массива
System.out.println("count " + count);
//подсчет среднего значения положительных чисел массива
System.out.println("average/count " + average / count);
}
}
Дмитрий Морозов
спасибо большое. постараюсь изучать как можно больше!
Ансаган Сайлаубек
на основе предложенного решения попробуйте решить эту же задачу с boolean вместо внутреннего цикла, как вам советовали выше по приведенному алгоритму. Можете тут решение выложить по первому варианту.
В каком редакторе вы пишете код? В коде синтаксические ошибки, если будете работать в Intelij Idea то IDE сразу будет их показывать.
В каком редакторе вы пишете код? В коде синтаксические ошибки, если будете работать в Intelij Idea то IDE сразу будет их показывать.
Братан забей
Правда
Правда
Дмитрий Морозов
угу, а на игру мне так же забить, так как я буду в коворкинге работать. На будущую работу так же забить?!
Похожие вопросы
- Доброго времени суток, хочу задать вопрос по поводу изучения языков программирования.
- Как решить данную задачу с Codewars?
- Помогите понять как решить задание по Java.
- Помогите please решить задачу Java: Дано координату шахматного коня например е2.Требуется вывести все варианты хода коня
- Помогите решить задачку Java
- Решить задачку на языке Java. Прошу помощи так как сам работаю с другим языком, этот не знаю)
- C# Помогите написать генератор паролей на C# ,что бы он мог генерировать нужное кол-во паролей.
- 2.11 Практическая работа Создайте проект с именем AgeComparator,я зделал небольшой прект можете его пж доработать?
- Не могу разобраться с ASCII.
- Не могу никак разобраться с этими IF ELSE и фигурными скобками. JAVA