
Задан массив А, состоящий из n чисел. Найдите среднее арифметическое его элементов, стоящих на
нечётных местах. 

Ответы на вопрос

Відповідь:
C++ code:
#include <iostream>
#include <cstdlib>
#include <ctime>
void randarr(int *arr,const int size){
for(int i = 0; i < size; i++){
arr[i] = rand() % 20 + 1;
}
}
void printarr(int *arr,const int size){
for(int i = 0; i < size; i++){
std::cout << arr[i] << " ";
}
std::cout << std::endl;
}
double average(int *arr,const int size){
double average = 0;
int counter = 0;
for(int i = 0; i < size; i++){
if(i % 2 == 0){
average += arr[i];
counter++;
}
}
return average / counter;
}
int main() {
srand(time(NULL));
int size;
std::cout << "Enter a size of array: ";
std::cin >> size;
int *arr = new int[size];
randarr(arr,size);
printarr(arr,size);
std::cout << "Result = " << average(arr,size) << std::endl;
delete[] arr;
return 0;
}



Для решения данной задачи можно использовать следующий алгоритм:
- Инициализировать переменную sum_odd со значением 0 для хранения суммы элементов на нечётных позициях.
- Инициализировать переменную count_odd со значением 0 для подсчёта количества элементов на нечётных позициях.
- Проходить по массиву А, начиная с индекса 1 (так как индексы в массивах обычно начинаются с 0) и с шагом 2, чтобы обрабатывать только элементы на нечётных позициях.
- Для каждого элемента на нечётной позиции, добавлять его значение к переменной sum_odd и увеличивать count_odd на 1.
- После завершения цикла, вычислить среднее арифметическое элементов на нечётных позициях, разделив sum_odd на count_odd.
- Вернуть полученное среднее арифметическое.
Пример кода на Python:
pythondef average_odd_elements(arr):
sum_odd = 0
count_odd = 0
for i in range(1, len(arr), 2):
sum_odd += arr[i]
count_odd += 1
if count_odd == 0:
return 0
else:
return sum_odd / count_odd
# Пример использования
A = [1, 2, 3, 4, 5, 6, 7]
result = average_odd_elements(A)
print(result)
В этом примере массив A состоит из чисел [1, 2, 3, 4, 5, 6, 7]. Среднее арифметическое элементов, стоящих на нечётных позициях (т.е. [2, 4, 6]), будет равно (2 + 4 + 6) / 3 = 4.


Похожие вопросы


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili