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

Задача по массиву в Си++

Задан дномерный массив случайных чисел размерностью 200 чисел и диапазоном значений -100 ...100.
Во всех последовательностях положительных чисел заменить значение элементов с максимальным и минимальным значением на среднее для этой последовательности.

Массив уже есть: void main()
{
setlocale(LC_ALL,"Russian");
int A[200]; //определение массива
int i,r,N;
for(i=0;i<200;i++)
{
r=rand() 0-100; //100>=r>= -100;
A=r;
cout<<a<i><<"\t";
}
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
struct sequence {
    sequence() { }
    sequence(double _min, double _max, double _mid) : min(_min), max(_max), mid(_mid) {}
    double min;
    double max;
    double mid;
};
sequence process(double *, unsigned);
void show(double *, const size_t);
void work(double *, const size_t);
int main() {
    srand(unsigned(time(NULL)));
    const size_t size = 200;
    double vector[size];
    for (unsigned n = 0; n < size; n++) vector[n] = rand() % 201 - 100;
    show(vector, size);
    work(vector, size);
    show(vector, size);
    cin.get(); cin.get();
    return 0;
}
void work(double * _p, const size_t _s) {
    for (unsigned n = 0; n < _s; n++)
        if (_p[n] >= 0) {
            sequence seq = process(&_p[n], _s - n);
            while (n < _s && _p[n] >= 0) {
                if (seq.max == _p[n] || seq.min == _p[n]) _p[n] = seq.mid;
                ++n;
            }
        }
}
void show(double * _v, const size_t _s) {
    for (unsigned n = 0; n < _s; n++) {
        if (!(n % 5)) cout << endl;
        cout << setw(15) << _v[n];
    }
    cout << endl;
}
sequence process(double * _p, unsigned _q) {
    --_q;
    sequence seq(*_p, *_p, *_p);
    if (_q) {
        unsigned count = 1;
        double sum = *_p;
        while (_q && *(++_p) >= 0) {
            if (*_p < seq.min) seq.min = *_p;
            if (*_p > seq.max) seq.max = *_p;
            ++count;
            sum += *_p;
            --_q;
        }
        seq.mid = sum / count;
    }
    return seq;
}
Главдизайн Ооо
Главдизайн Ооо
96 129
Лучший ответ
Игорь Филимонов добавьте пожалуйста комментарии к коду ...
ну, проблема-то в чем?
пошел по массиву, ищешь min max
как кого не положительного встретил - делаешь действия, обнуляешься и дальше
Андрей Близнец
Андрей Близнец
38 447
Игорь Филимонов я не знаю как код такой написать ...