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

mikki255 mikki255    3   11.05.2020 18:41    2

Ответы
zhahbota zhahbota  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;

}

Объяснение:

Код на с++

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика