Для всех задач сформировать одномерный массив N случайных чисел
из интервала (-10; 10). Предусмотреть автоматический и ручной способ
создания элементов массива.
Отсортировать по неубыванию методом выбора нечетные элементы
массива.
C/C++
Для всeх зaдaч сфoрмировать oдномерный мaссив N случaйных чисeл из интервала (-10; 10).
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
class Array {
public:
Array(int n) : n(n), m(new int[n]) {}
~Array() {
if (m != nullptr) {
delete[] m;
m = nullptr;
}
}
void fill(int a, int b) {
if (a > b) swap(a, b);
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
for (int i = 0; i < n; ++i) m[i] = uid(gen);
}
void show(streamsize w)const {
for (int i = 0; i < n; ++i) cout << setw(w) << m[i];
puts("");
}
void pn_range() {
auto fn = [](int a, int b) { return a >= 0 && b < 0; };
sort(m, m + n, fn);
}
void selection_sort() {
for (int i = 0; i < n - 1; ++i) {
int k = i;
for (int j = i + 1; j < n; j++) if (m[j] < m[k]) k = j;
swap(m[i], m[k]);
}
}
int size()const { return n; };
int* begin() { return m; }
int* end() { return m + n; }
private:
int n;
int* m;
};
unsigned size(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
Array box(size("n: "));
box.fill(-10, 10);
box.show(4);
box.selection_sort();
box.show(4);
system("pause > nul");
}
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
class Array {
public:
Array(int n) : n(n), m(new int[n]) {}
~Array() {
if (m != nullptr) {
delete[] m;
m = nullptr;
}
}
void fill(int a, int b) {
if (a > b) swap(a, b);
uniform_int_distribution<> uid(a, b);
mt19937 gen{ random_device()() };
for (int i = 0; i < n; ++i) m[i] = uid(gen);
}
void show(streamsize w)const {
for (int i = 0; i < n; ++i) cout << setw(w) << m[i];
puts("");
}
void pn_range() {
auto fn = [](int a, int b) { return a >= 0 && b < 0; };
sort(m, m + n, fn);
}
void selection_sort() {
for (int i = 0; i < n - 1; ++i) {
int k = i;
for (int j = i + 1; j < n; j++) if (m[j] < m[k]) k = j;
swap(m[i], m[k]);
}
}
int size()const { return n; };
int* begin() { return m; }
int* end() { return m + n; }
private:
int n;
int* m;
};
unsigned size(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
Array box(size("n: "));
box.fill(-10, 10);
box.show(4);
box.selection_sort();
box.show(4);
system("pause > nul");
}
Похожие вопросы
- Для всех задач сформировать одномерный массив N случайных чисел из интервала (-10; 10).
- Сформировать матрицу B(M, N) элементами которой являются случайные числа, равномерно распределенные в интервале (-5, 7
- С++. БЕЗ ИСПОЛЬЗОВАНИЯ АДРЕСОВ И УКАЗАТЕЛЕЙ. Пусть дано натуральное число n и вещественная матрица размером n x 10.
- Как передать матрицу размером n в процедуру? C++
- Язык си Найти все делители натурального числа N и вывести их в порядке возрастания и убывания.
- Дан массив из N элементов (N < 1000), причем N - четное. Вставить в середину массива сумму всех элементов.
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.
- Найти сумму факториала K=1!+2!...n! нечетных чисел от 1 до n.
- Си. Цикл for. Что не так? Составить программу вывода на экран всех простых чисел не превосходящих введеннного числа N
- Хелпаните плиз, надо код перестроить на N вещестные числа и для вычесления гометрической прогрессии.