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

0 голосов
120 просмотров

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


Информатика (12 баллов) | 120 просмотров
Дан 1 ответ
0 голосов

Ответ:

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

#include

#include

#include

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

}

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

#include

#include

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

}

int main() {

setlocale(LC_ALL, "Russian");

int n;

cout

cin >> n;

int* data = new int[n];

int MaxIndex = 0, MinIndex = 100;

cout

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

 cin >> data[i];

}

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

SearchSrAr(data, &MaxIndex, &MinIndex);

delete[] data;

}

Объяснение:

Код на с++

(85 баллов)
0

массив и его размер нам известны, после введения массивов ничего не происходит

0

Обновил ответ.

0

А,не могу его создать

0

Замените Функцию GetMaxAndMinIndex этой :

void GetMaxAndMinIndex(int* data, int* MaxIndex, int* n, int* MinIndex) {
int max = 0, min = 100;
for (int i = 0; i < *n; ++i) {
if (max < data[i]) {
max = data[i];
*MaxIndex = i;
}
if (min > data[i]) {
min = data[i];
*MinIndex = i;
}
}
}