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

ПРОГРАММА ПО С++

В массиве дробных чисел посчитать (функции + прототипы + аргументы по умолчанию):
- Сумму всех элементов массива
- Среднее арифметическое всех элементов массива
- Минимальный элемент
- Максимальный элемент
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
double sum(const double* box, const size_t lim) {
auto s = 0.0;
for (auto i = 0U; i < lim; ++i) s += box[i];
return s;
}
double avg(const double* box, const size_t lim) {
return sum(box, lim) / lim;
}
pair<double, double> minmax(const double* box, const size_t lim) {
auto min = numeric_limits<double>::max();
auto max = numeric_limits<double>::min();
for (auto i = 0U; i < lim; ++i) {
if (box[i] > max) max = box[i];
else if (box[i] < min) min = box[i];
}
return { min, max };
}
int main() {
const auto lim = 10U;
double box[lim];
const uniform_real_distribution<double> urd(0, 10);
random_device rd;
mt19937 gen(rd());
for (auto& item : box) item = urd(gen);
cout << fixed << setprecision(3);
for (const auto value : box)
cout << ' ' << value << '\n';
auto s = sum(box, lim);
auto a = avg(box, lim);
auto[min, max] = minmax(box, lim);
cout
<< " Sum: " << s << '\n'
<< " Average: " << a << '\n'
<< " Min: " << min << '\n'
<< " Max: " << max << endl;
system("pause");
}
Alex Buhin
Alex Buhin
54 897
Лучший ответ
#include < Iostream>
#include < algorithm>
#include < numeric>
using namespace std;
int main() {
int mx[] = { 9,8,7,6,5,4,3,2 };
const auto sum = accumulate( begin(mx), end(box), 0);
int N=sizeof(mx)/sizeof(*mx);

cout << "sum: " << sum << '\n',
<< "mean: " << sum/N << '\n',
<< "min: " << min_element(begin(mx), end(mx)) << '\n',
<< "max: " << max_element(begin(mx), end(mx)) << '\n',
}
Aleksei Agodkin
Aleksei Agodkin
83 523
А в чём вопрос?
И? В чем проблема написать такую простую программу? 4 функции, в каждую передаешь массив, с размерностью, каждая возвращает в вызывающую программу значение.
Дмитрий Решетников функции надо объявлять всегда в начале программы, или не обязательно?