C/C++

Можете решить задачу через delete [ ] ? с++

Дан массив целых чисел. Выяснить: а) верно ли, что сумма элементов, которые больше 20, превышает 100; помогите пожалуйста
Игорь Зур
Игорь Зур
49
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
#include <numeric>
using namespace std;
int integer(const char* msg) {
cout << msg;
int value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
system("chcp 1251 > nul");
auto n = integer("Размер массива: ");
auto box = new int[n];
if (n > 0 && box) {
const auto m = 20;
const auto h = 100;
uniform_int_distribution<> uid(10, 25);
mt19937 gen{ random_device()() };
auto rand = [uid, &gen] { return uid(gen); };
auto show = [](int x) { cout << setw(3) << x; };
auto more = [m](int s, int x) { return x > m? s + x : s; };
generate(box, box + n, rand);
for_each(box, box + n, show);
puts("");
auto sum = accumulate(box, box + n, 0, more);
puts(sum > h ? "Верно!" : "Неверно!");
} else {
puts("Недопустимый размер массива!");
}
if (box) delete[] box;
system("pause > nul");
}
*1
**(Dmm)** 1993
78 619
Лучший ответ
#include <iostream>
#include <cstdlib>
#include <ctime>

#define SIZE 20

using namespace std;

int main()
{
srand(time(NULL));
int * A = new int[SIZE];
int sum = 0;
int i = 0;
do
{
A[i] = (rand() % 37);
cout << A[i] << endl;
if (A[i] > SIZE) sum += A[i];
i++;
} while (i < SIZE);
cout << endl;
if (sum > 100)
cout << "верно" << endl;
else
cout << "не верно" << endl;
cout << "Сумма элемнтов, которые больше " << SIZE <<
", равна " << sum << '.' << endl;

delete [] A;

return 0;
}