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

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

Показать ответ
Ответ:
Lenchik632992
Lenchik632992
14.10.2020 13:28

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(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота