#include <iostream>
#include <ctime>
using namespace std;
int main()
{
double a[50], s = 0, count = 0;
srand(time(NULL));
for (int i = 0; i < 50; i++)
{
a[i] = -30 + rand() % 41;
if(a[i]>0)
{
s += a[i];
count++;
}
}
cout << s / count << endl;
system("pause");
return 0;
}
Выражение rand() % 41 рандомно принимает любое возможное значение остатка при делении на 41 ( от нуля до 40-а), следовательно -30+ rand()%41 рандомно принимает значение от -30-и до 10-и. Выбираем 50 таких рандомных чисел и храним их в массиве а, заодно в переменной s очередное число, если оно положительное а в переменной count считаем количество положительных чисел. s/count будет средней арифметической всех положительных чисел промежутка.
PascalABC.NET 3.5.1 + .NET Framework 4.7.1
#1
begin
var n := ReadInteger();
var a := Range(1, n);
//Sum
a.Sum.Println;
//произведение
a.Aggregate(BigInteger.One, (p, q) -> p * q).Println;
//Кол-во кратных 2 и 3
a.Where(p -> (p mod 2 = 0) and (p mod 3 = 0)).Count.Println;
//Среднее ряда
a.Average.Round.Println
end.
#2
begin
var A := ReadArrInteger(10);
A.Println;
//максимум
A.Max.Println;
//Сумма кратных 2 и 3
A.Where(p -> (p mod 2 = 0) and (p mod 3 = 0)).Sum.Println
end.