1) Заполните массив случайными числами в диапазоне 20..100 и подсчитайте отдельно число чётных и нечётных элементов.
2) Заполните массив случайными числами в диапазоне 0..100 и подсчитайте отдельно среднее значение всех элементов, которые <50, и среднее значение всех элементов, которые ≥50.
Answers & Comments
int main(int argc, char** argv) { srand(time(NULL)); int n , Chet = 0 ,notChet = 0 ,a[max]; cout<<"Size : "; cin>>n; for(int i = 0; i < n; i++) { a[i] = rand()%120+20; cout<<a[i]<<endl; if (a[i] %2 == 0) Chet++; else notChet++; } cout<<"Chet = "<<Chet<<", NotChet = "<<notChet; return 0;}
typedef size_t uint32;
mt19937 gen{ random_device()() };
uniform_int_distribution<uint32> uid(20, 100);
const uint32 N = 10;
int main()
{
uint32 arr[N], pos{0}, neg{0};
for (uint32 i = 0; i < N; ++i) {
arr[i] = uid(gen);
cout << arr[i] << " ";
if (arr[i] % 2 == 0) ++pos;
else ++neg;
}
cout << endl << pos << "/" << neg << endl;
system("pause");
}
2)
typedef size_t uint32;
mt19937 gen{ random_device()() };
uniform_int_distribution<uint32> uid(0, 100);
const uint32 N = 10;
int main()
{
uint32 arr[N], lf{ 0 }, hf{ 0 }, sum1{ 0 }, sum2{ 0 };
for (uint32 i = 0; i < N; ++i) {
arr[i] = uid(gen);
cout << arr[i] << " ";
if (arr[i] >= 50) {
++lf;
sum1 += arr[i];
} else {
++hf;
sum2 += arr[i];
}
}
cout << endl << sum1 / lf << "/" << sum2 / hf << endl;
system("pause");
}