Предмет: Информатика,
автор: Eugene524
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.
Ответы
Автор ответа:
0
Чтобы прекратить ввод чисел в массив нужно ввести число "-1".
class ArrayMiddle{
public static void main(String args[]){
java.util.Scanner in = new java.util.Scanner(System.in); long eArray[] = new long[1];
while((eArray[eArray.length-1] = in.nextLong())!=-1){
long nArray[] = new long[eArray.length+1];
for(int nCell = 0; nCell<eArray.length; nCell++)nArray[nCell]=eArray[nCell];
eArray = nArray;
} eArray[eArray.length-1] = 0;
for(int cCell = 0; cCell<eArray.length-1; cCell++)eArray[eArray.length-1]+=eArray[cCell];
System.out.print(eArray[eArray.length-1]/(double)(eArray.length-1));
}
}
class ArrayMiddle{
public static void main(String args[]){
java.util.Scanner in = new java.util.Scanner(System.in); long eArray[] = new long[1];
while((eArray[eArray.length-1] = in.nextLong())!=-1){
long nArray[] = new long[eArray.length+1];
for(int nCell = 0; nCell<eArray.length; nCell++)nArray[nCell]=eArray[nCell];
eArray = nArray;
} eArray[eArray.length-1] = 0;
for(int cCell = 0; cCell<eArray.length-1; cCell++)eArray[eArray.length-1]+=eArray[cCell];
System.out.print(eArray[eArray.length-1]/(double)(eArray.length-1));
}
}
Автор ответа:
0
Только Java знаю. Паскаль подзабыл.
Автор ответа:
0
Сначала в задании на одном из языков и даже на русском, а теперь вдруг Паскаль вылазит. Что-то мне шепчет, что и на Паскале будет вопрос, нельзя ли написать на какой-то версии определенной и каким-то способом "как мы учили".
Автор ответа:
0
"Пустите погреться, пожалуйста, а то так кушать хочется, что и переночевать негде!" (с)
Автор ответа:
0
++
Автор ответа:
0
Собственно, решение однострочное...
// PascalABC.NET 3.0, сборка 1150 от 22.01.2016
begin
Writeln('Ср.арифм=',ArrRandom(30,0,1000).Println(', ').
Where(x->Odd(x)).Average)
end.
Тестовое решение:
611, 443, 634, 637, 44, 297, 286, 431, 130, 767, 388, 513, 827, 681, 619, 810, 586, 697, 206, 823, 294, 238, 354, 138, 411, 141, 873, 864, 715, 564
Ср.арифм=592.875
И пояснение, как это работает, т.е. по сути алгоритм на русском языке.
ArrRandom(30,0,1000) создает массив из 30 элементов и заполняет его случайными значениями из диапазона [0,1000]. Далее этот массив обрабатывается методом Println, который направляет значения элементов на вывод, разделяя их запятой с последующим пробелом и в конце вывода добавляет смену строки. Затем элементы массива проходят фильтр Where(x->Odd(x)), который пропускает через себя только те значения, которые удовлетворяют условию Odd(значение элемента)=True, а мы знаем, что Odd() возвращает True для нечетного аргумента. Далее прошедшие фильтр элементы обрабатываются методом Average, который умеет принимать набор значений и возвращать их среднее. И наконец, процедура Writeln выводит полученное значение, предваряя его текстовым пояснением.
// PascalABC.NET 3.0, сборка 1150 от 22.01.2016
begin
Writeln('Ср.арифм=',ArrRandom(30,0,1000).Println(', ').
Where(x->Odd(x)).Average)
end.
Тестовое решение:
611, 443, 634, 637, 44, 297, 286, 431, 130, 767, 388, 513, 827, 681, 619, 810, 586, 697, 206, 823, 294, 238, 354, 138, 411, 141, 873, 864, 715, 564
Ср.арифм=592.875
И пояснение, как это работает, т.е. по сути алгоритм на русском языке.
ArrRandom(30,0,1000) создает массив из 30 элементов и заполняет его случайными значениями из диапазона [0,1000]. Далее этот массив обрабатывается методом Println, который направляет значения элементов на вывод, разделяя их запятой с последующим пробелом и в конце вывода добавляет смену строки. Затем элементы массива проходят фильтр Where(x->Odd(x)), который пропускает через себя только те значения, которые удовлетворяют условию Odd(значение элемента)=True, а мы знаем, что Odd() возвращает True для нечетного аргумента. Далее прошедшие фильтр элементы обрабатываются методом Average, который умеет принимать набор значений и возвращать их среднее. И наконец, процедура Writeln выводит полученное значение, предваряя его текстовым пояснением.
Похожие вопросы
Предмет: Математика,
автор: vvboom9
Предмет: Алгебра,
автор: vovachas07
Предмет: История,
автор: fillllllllllllllll
Предмет: Математика,
автор: aidemirchik
Предмет: История,
автор: loooooooool9913