Другие языки программирования и технологии

Составьте программу, отыскивающую наибольший элемент массива A(N) из числа принадлежащим интервалу {min,(min+max\2))

Составьте программу, отыскивающую наибольший элемент массива A(N) из числа принадлежащим интервалу {min,(min+max\2)) (min и max - соответственно минимальный и максимальный элемент массива)
#include <iostream>
#include <iomanip>
#include <ctime>

using namespace std;

double search_min(double *, const size_t);
double search_max(double *, const size_t);
double search_max_right(double *, const size_t, const double);
void show(double *, const size_t);

int main() {
    double vector[] = { 7,8,18,19,20,21,9,11.1,11,12,13,3,4,5,6,14,15,1,2,16,17,11.3 };
    size_t size = sizeof(vector) / sizeof(double);
    show(vector, size);
    double min = search_min(vector, size);
    double max = search_max(vector, size);
    double right = min + max / 2;
    double max_from_interval = search_max_right(vector, size, right);
    cout << " Result = " << max_from_interval << endl;
    cin.get(); cin.get();
    return 0;
}

void show(double * _vector, const size_t _size) {
    for (rsize_t n = 0; n < _size; n++)
        cout << setw(6) << _vector[n] << endl;
    cout << endl;
}

double search_min(double * _vector, const size_t _size) {
    double min = _vector[0];
    for (rsize_t n = 1; n < _size; n++)
        if (min > _vector[n])
            min = _vector[n];
    return min;
}

double search_max(double * _vector, const size_t _size) {
    double max = _vector[0];
    for (rsize_t n = 1; n < _size; n++)
        if (max < _vector[n])
            max = _vector[n];
    return max;
}

double search_max_right(double * _vector, const size_t _size, const double _right) {
    double max = DBL_MIN;
    for (rsize_t n = 0; n < _size; n++)
        if (_vector[n] <= _right && max < _vector[n])
            max = _vector[n];
    return max;
}
МН
Миша Никишин
89 801
Лучший ответ

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