C/C++

Помогите пожалуйста решить задачки c++

Получить и вывести на экран:
а)  8 случайных вещественных чисел ni
(0 ≤ ni
< 1);
б)  k случайных вещественных чисел ni
(0 ≤ ni
< 1). Значение k
вводится с клавиатуры;
в)  15 случайных вещественных чисел ni
(25 ≤ ni
< 26);
г)  20 случайных вещественных чисел ni
(0 ≤ ni
< 15);
д)  случайное натуральное число k, не превосходящее a, и k случайных вещественных чисел ni
(0 ≤ ni
< b). Значения a и b
вводятся с клавиатуры;
е)  10 случайных вещественных чисел ni
(–40 ≤ ni
< 40);
ж)  случайное натуральное число k, не превосходящее m, и k
случайных вещественных чисел ni
(a ≤ ni
< b). Значения m,
a и b вводятся с клавиатуры.
10.2. Получить и вывести на экран:
а)  10 случайных целых чисел, лежащих в диапазоне от 0 до 10
включительно;
б)  k случайных целых чисел, лежащих в диапазоне от 0 до a
включительно. Значения k и a вводятся с клавиатуры;
в)  20 случайных целых чисел, лежащих в диапазоне от 10 до
20 включительно;
г)  k случайных целых чисел, лежащих в диапазоне от –10 до a
включительно. Значения k и a вводятся с клавиатуры;
д)  случайное натуральное k, не превосходящее 15, и k случайных целых чисел, лежащих в диапазоне от a до b включительно. Значения a и b вводятся с клавиатуры.
10.3. Получить и вывести на экран случайные натуральные
числа m и n, не превосходящие 20, n целых чисел, лежащих в диапазоне от a до b включительно, и m неотрицательных случайных
вещественных чисел, не превосходящих n. Значения a и b вводятся с клавиатуры.
10.4. С помощью датчика случайных чисел получить 50 целых
чисел, лежащих в диапазоне от 0 до 3 включительно, но вывести
на экран только единицы и нули.
10.5. С помощью датчика случайных чисел получить 30 целых
чисел, лежащих в диапазоне от 0 до 5 включительно, но вывести
на экран только нечетные числа.
#include <iomanip>
#include <iostream>
#include <random>
#include <Windows.h>
using namespace std;
class Random {
public:
Random() {
random_device device;
gen.seed(device());
gen_64.seed(device());
}
int next(int first, int last) {
uniform_int_distribution<int> range(first, last);
return range(gen);
}
double next(double first, double last) {
uniform_real_distribution<double> range(first, last);
return range(gen_64);
}
private:
mt19937 gen;
mt19937_64 gen_64;
};
double real(const char* msg) {
cout << msg;
double value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int integer(const char* msg) {
cout << msg;
int value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
SetConsoleTitleW(L"Задание 10.1");
system("chcp 1251 > nul");
Random rand;
cout << fixed << setprecision(15);
puts(" Упражнение А: \n");
{
for (int i = 1; i <= 8; ++i) {
cout << setw(3) << i << "." << setw(18) << rand.next(0.0, 1.0) << '\n';
}
}
puts("\n Упражнение Б: \n");
{
auto k = integer("Введите k: ");
puts("");
for (int i = 1; i <= k; ++i) {
cout << setw(3) << i << "." << setw(18) << rand.next(0.0, 1.0) << '\n';
}
}
puts("\n Упражнение В: \n");
{
for (int i = 1; i <= 15; ++i) {
cout << setw(3) << i << "." << setw(19) << rand.next(25.0, 26.0) << '\n';
}
}
puts("\n Упражнение Г: \n");
{
for (int i = 1; i <= 20; ++i) {
cout << setw(3) << i << "." << setw(19) << rand.next(0.0, 15.0) << '\n';
}
}
puts("\n Упражнение Д: \n");
{
auto a = 0;
while (a <= 1) a = integer("Введите a: ");
auto b = 0.0;
while (b <= 0.0) b = real("Введите b: ");
puts("");
auto k = rand.next(1, a - 1);
cout << "k: " << k << '\n';
for (int i = 1; i <= k; ++i) {
cout << setw(3) << i << ". " << setw(18) << rand.next(0.0, b) << '\n';
}
}
puts("\n Упражнение Е: \n");
{
for (int i = 1; i <= 10; ++i) {
cout << setw(3) << i << "." << setw(20) << rand.next(-40.0, 40.0) << '\n';
}
}
puts("\n Упражнение Ж: \n");
{
auto a = real("Введите a: ");
auto b = 0.0;
while (b <= a) b = real("Введите b: ");
auto m = 0;
while (m <= 1) m = integer("Введите m: ");
puts("");
auto k = rand.next(1, m - 1);
cout << "k: " << k << '\n';
for (int i = 1; i <= k; ++i) {
cout << setw(3) << i << ". " << setw(18) << rand.next(a, b) << '\n';
}
}
system("pause > nul");
}
Бектурган Сартбаев
Бектурган Сартбаев
55 124
Лучший ответ
Руслан Файзрахманов У меня с Windows.h не работает и chcp в system не обнаруживается ʘ‿ʘ
10.1. а-б)
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
double r() { return 1. * rand() / RAND_MAX; }
int main() { int i, k; srand(time(NULL));
for (int i = 1; i < 9; i++) cout << i << ") " << r()
<< endl; cout << "k = ?\b"; cin >> k; for (i = 0;
i < k; i++) cout << i + 1 << ") " << r() << endl; }
Игорь К.
Игорь К.
29 440