Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задали д/з не могу решить(

sad worn Ученик (227), закрыт 2 года назад
Создать массив дробных (не целых) чисел размером 15 элементов и наполнить его положительными и отрицательными числами;

Затем через цикл “for each” посчитать среднее арифметическое положительных чисел расположенных после первого отрицательного числа и вывести его на экран
Лучший ответ
Зеленая бяка Просветленный (41521) 2 года назад
А что именно тут не понятно?
Продумай алгоритм по шагам.
1. Создаешь массив с числами
2. Пишешь цикл for each
3. В цикле проверяешь, число больше 0 или меньше.
- если число меньше 0, то нам нужно запомнить это. Для этого создадим переменную типа boolean ВНЕ цикла. По умолчанию она false. Если число меньше, чем 0, то превращаем ее в true.
- Делаем следующую проверку в цикле ПОСЛЕ предыдущей: если переменная из предыдущего шага = true, то нам надо начать сохранять положительные элементы. Создадим под это дело еще одну переменную типа List< Double >. Внутри этой проверки делаем проверку число больше 0 или нет. Если число больше, то добавляем его в лист положительных элементов.
4. Теперь у нас есть все положительные элементы, после того, как цикл закончится. Нужно их просуммировать ПОСЛЕ ЦИКЛА и поделить на количество элементов.

Вроде ничего сложного. Мой алгоритм может быть не эффективным, не совсем правильным, и вообще я спать хочу. Дорогу осилит идущий. Тут вам накидают красивых решений с кодом, но нужно учиться думать самому. Это сложно, но вы же хотите научиться программировать. А вообще лучше подобные вопросы задавать таким образом - вот моя задача, вот мой код, помогите найти ошибку. Иначе вы ничему не научитесь.
sad wornУченик (227) 2 года назад
спасибо, если что, я могу обратиться сюда за повторной помощью, если мне будет что то не понятно (в коменты под темой)
sad worn Ученик (227) sad worn, я нихера не понял как делать проверку
k kПрофи (839) 2 года назад
Как вариант - пользоваться гуглом. Если вы наберете в поиске "посчитать среднее арифметическое положительных чисел расположенных после первого отрицательного числа", то найдете кучу разных реализаций.
Остальные ответы
Ап Па Знаток (313) 2 года назад
Братан забей
Правда
sad wornУченик (227) 2 года назад
угу, а на игру мне так же забить, так как я буду в коворкинге работать. На будущую работу так же забить?!
Ап ПаЗнаток (313) 2 года назад
Да
k k Профи (839) 2 года назад
я вам предложу решение, потому что судя по вашим ошибкам в синтаксисе вы даже с подсказками будете составлять код долго. У вас В инициализации массива ошибка . В задании требуется, чтобы в нем были положительные и отрицательные числа, у вас только положительные.

Ваш нужно изучать основы языка, рекомендую Шилдта 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);

}

}
sad wornУченик (227) 2 года назад
спасибо большое. постараюсь изучать как можно больше!
k kПрофи (839) 2 года назад
на основе предложенного решения попробуйте решить эту же задачу с boolean вместо внутреннего цикла, как вам советовали выше по приведенному алгоритму. Можете тут решение выложить по первому варианту.

В каком редакторе вы пишете код? В коде синтаксические ошибки, если будете работать в Intelij Idea то IDE сразу будет их показывать.
sad worn Ученик (227) k k, как раз таки работаю в Intellij IDEA
Похожие вопросы