Вопрос задан 07.07.2023 в 07:27. Предмет Информатика. Спрашивает Клос Мар'яна.

В одномерном массиве найти среднее арифметическое для элементов, расположенных между максимальным и

минимальным. Если они следуют один за другим, считать его равным нулю. Количество элементов в массиве не более 200. Формат числа цц.ц. Массив распечатывать по десять элементов на строке.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Суржан Артур.

Ответ:

1) Если изначальный массив НЕ дан, т.е необходимо его заполнить случайными числами

#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

void GetMaxAndMinIndex(int* data,int* MaxIndex,int* MinIndex) {

for (int i = 0; i < 200; ++i) {

 if (data[i] > data[i + 1]) {

  *MaxIndex = i;

 }

 if (data[i] < data[i + 1]) {

  *MinIndex = i;

 }

}

}

void SearchSrAr(int* data,int* MaxIndex,int* MinIndex) {

int tmpI = 0;

int TmpNum = 0;

for (int i = *MinIndex; i < *MaxIndex; ++i) {

 TmpNum = TmpNum + data[i];

 tmpI++;

}

double output = TmpNum / tmpI;

cout <<"Ваше число "<< output;

}

int main() {

setlocale(LC_ALL, "Russian");

int* data = new int[200];

int MaxIndex = 0, MinIndex = 100;

srand(time(NULL));

for (int i = 0; i < 200;++i) {

 data[i] = rand() % 100;

}

GetMaxAndMinIndex(data, &MaxIndex, &MinIndex);

SearchSrAr(data, &MaxIndex, &MinIndex);

delete[] data;

}

И если этот массив и его размер нам известны

#include <iostream>

#include <cstdlib>

#include <ctime>

using namespace std;

void GetMaxAndMinIndex(int* data,int* MaxIndex,int * n,int* MinIndex) {

for (int i = 0; i < *n; ++i) {

 if (data[i] > data[i + 1]) {

  *MaxIndex = i;

 }

 if (data[i] < data[i + 1]) {

  *MinIndex = i;

 }

}

}

void SearchSrAr(int* data,int* MaxIndex,int* MinIndex) {

int tmpI = 0;

int TmpNum = 0;

for (int i = *MinIndex; i < *MaxIndex; ++i) {

 TmpNum = TmpNum + data[i];

 tmpI++;

}

double output = TmpNum / tmpI;

cout <<"Ваше число "<< output;

}

int main() {

setlocale(LC_ALL, "Russian");

int n;

cout << "Введите количество чисел в массиве " << endl;

cin >> n;

int* data = new int[n];

int MaxIndex = 0, MinIndex = 100;

cout << "Введите ваш массив " << endl;

for (int i = 0; i < n; ++i) {

 cin >> data[i];

}

GetMaxAndMinIndex(data, &MaxIndex,&n, &MinIndex);

SearchSrAr(data, &MaxIndex, &MinIndex);

delete[] data;

}

Объяснение:

Код на с++

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Приведенный вами текст представляет задачу по программированию на языке, который предположительно использует указанный синтаксис. Давайте рассмотрим решение данной задачи на примере Python.

python
def find_average(arr): # Найти индексы максимального и минимального элементов max_index = arr.index(max(arr)) min_index = arr.index(min(arr)) # Определить начальный и конечный индексы для вычисления среднего start_index = min(max_index, min_index) + 1 end_index = max(max_index, min_index) # Если элементы идут последовательно, вернуть 0 if end_index - start_index == 1: return 0 # Вычислить среднее арифметическое для элементов между минимальным и максимальным sum_between = sum(arr[start_index:end_index]) count = end_index - start_index average = sum_between / count return average # Пример массива данных (замените его на свой массив) data = [3, 8, 2, 7, 6, 1, 10, 5, 4, 9, 12, 15, 11, 14, 13] # Найдем среднее арифметическое для элементов между максимальным и минимальным result = find_average(data) print("Среднее арифметическое:", format(result, ".2f")) # Распечатаем массив по 10 элементов на строке for i in range(0, len(data), 10): print(*data[i:i+10])

Обратите внимание, что в этом примере мы сначала находим максимальный и минимальный элементы, определяем диапазон для вычисления среднего арифметического, а затем выполняем необходимые вычисления. Результат среднего арифметического выводится с точностью до двух знаков после запятой. Массив также выводится по 10 элементов на строке.

0 0

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

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

Последние заданные вопросы в категории Информатика

Задать вопрос