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

Помогите написать прогу на С++

Условие: Написать функцию, которая получает целочисельный массив (из файла) и его длину и возвращает разницу между максимальным значением и срадним арифметическим чисел
AE
Aziz Ergashev
339
#include <fstream>
#include <iostream>
using namespace std;
void problem();
int maximum(int *, const size_t);
double average(int *, const size_t);
int main() {
    problem();
    return 0;
}
void problem() {
    size_t size;
    ifstream ifs("array.txt", ifstream::in);
    ifs >> size;
    int * a = new int [size];
    if (size) for (size_t n = 0; n < size; n++) ifs >> a[n];    
    if (a) {
        double result = maximum(a, size) - average(a, size);
        cout << "Result = " << result << endl;
    }
    ifs.close();
    delete[] a;
    cin.get();
}
int maximum(int * _array, const size_t _size) {
    int max = 0;
    if (_array && _size) {
        max = _array[0];
        for (size_t n = 1; n < _size; n++) if (max < _array[n]) max = _array[n];
    }
    return max;
}
double average(int * _array, const size_t _size) {
    double avg = 0;
    if (_array && _size) {
        double sum = 0;
        for (size_t n = 0; n < _size; n++) sum += _array[n];
        avg = sum / _size;
    }
    return avg;
}

Файл array.txt располагается в директории проекта и содержит первым числом размер массива, а далее перечисляется значение элементов, в количестве не меньшим, чем размер массива.
Rasul Kadyakov
Rasul Kadyakov
60 307
Лучший ответ
float funct(float *a,int n){
float max=a [ 0 ];
float sreda=0;
for ( int i =0 ; i < n ; i++){
if( a [ i ] > max) max=a [ i ];
sreda+=a /n
}
return abs(max-sreda);
}
Сергей セルゲイ
Сергей セルゲイ
35 594