C/C++

C++ Помогите с кодом

Сгенерировать пять массивов из случайных чисел. Вывести их и сумму их
элементов на экран. Найти среди них один с максимальной суммой
элементов. Указать какой он по счету, повторно вывести этот массив и
сумму его элементов. Заполнение массива и подсчет суммы его элементов
оформить в виде отдельной функции.

Просьба писать программу полностью
Пожалуйста, подожди чуть-чуть, я просто не успеваю
ОЗ
Олег Золотько
3 186
Лучший ответ
#include <iostream>
#include <iomanip>
#include <random>
#include <tuple>
using namespace std;
int* create(int n, int a, int b) {
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
int* box = new int[n];
for (int i = 0; i < n; ++i) box[i] = uid(gen);
return box;
}
void destroy(int* box) {
if (box != nullptr) {
delete[] box;
box = nullptr;
}
}
int sum(int* box, int n) {
int acc = 0;
for (int i = 0; i < n; ++i) acc += box[i];
return acc;
}
void show(int num, int* box, int n, int sum) {
cout << num << ". ";
for (int i = 0; i < n; ++i) cout << box[i] << ' ';
cout << ": sum = " << sum << '\n';
}
int main() {
int n = 10, x = 1, y = 9;
tuple<int, int, int*> box;
int* a = create(n, x, y);
int sa = sum(a, n);
box = { 1, sa, a };
show(1, a, n, sa);
int* b = create(n, x, y);
int sb = sum(b, n);
if (sb > get<1>(box)) box = { 2, sb, b };
show(2, b, n, sb);
int* c = create(n, x, y);
int sc = sum(c, n);
if (sc > get<1>(box)) box = { 3, sc, c };
show(3, c, n, sc);
int* d = create(n, x, y);
int sd = sum(d, n);
if (sd > get<1>(box)) box = { 4, sd, d };
show(4, d, n, sd);
int* e = create(n, x, y);
int se = sum(e, n);
if (se > get<1>(box)) box = { 5, se, e };
show(5, e, n, se);
puts("");
show(get<0>(box), get<2>(box), n, get<1>(box));
destroy(a);
destroy(b);
destroy(c);
destroy(d);
destroy(e);
system("pause > nul");
}
Николай Тыцкий
Николай Тыцкий
61 888