Структуры данных: массивы (C++)
Версия от 10:43, 26 июня 2021; Безуглов Сергей (обсуждение | вклад)
Массивы
Задачи
Вывод всех целых чисел массива через пробел циклом For
1 #include <iostream>
2
3 int main() {
4 int a[] {1, 5, 8, 3, 9, 23, 15};
5 for (auto x : a)
6 {
7 std::cout << x << ' ';
8 }
9 }
Сделать массив из первых n нечётных чисел
1 #include <iostream>
2
3 int main() {
4 const int size = 10;
5 int a[size] = {0};
6
7 for (int i = 0; i < size; ++i) {
8 a[i] = (i+1)*2 - 1;
9 std::cout << a[i] << " ";
10 }
11 }
Сгенерировать массив случайных чисел
1 #include <iostream>
2 #include <random>
3
4 int main() {
5 const int size = 10;
6 int a[size];
7
8 std::random_device rd;
9 std::mt19937 mt(rd());
10 std::uniform_real_distribution<double> dist(-100, 100);
11
12 for (int & i : a) {
13 i = dist(mt);
14 std::cout << i << " ";
15 }
16 }
Вывести все содержащиеся в массиве нечетные числа в порядке возрастания их индексов, а также их количество
1 #include <iostream>
2 #include <random>
3
4 int main() {
5 const int size = 10;
6 int a[size];
7
8 std::random_device rd;
9 std::mt19937 mt(rd());
10 std::uniform_real_distribution<double> dist(0, 100);
11
12 for (int & i : a) {
13 i = trunc(dist(mt));
14 std::cout << i << " ";
15 }
16 std::cout << std::endl;
17
18 int count = 0;
19 for (int i : a) {
20 if (i % 2 == 1) {
21 std::cout << i << " ";
22 count++;
23 }
24 }
25 std::cout << std::endl;
26 std::cout << count << std::endl;
27 }
Разделить массив на два: на положительные+ноль и отрицательные числа
1 #include <iostream>
2 #include <random>
3
4 int main() {
5 const int size = 10;
6 std::vector<int> vector;
7 std::vector<int> pos;
8 std::vector<int> neg;
9
10 std::random_device rd;
11 std::mt19937 mt(rd());
12 std::uniform_real_distribution<double> dist(-100, 100);
13
14 for (int i = 0; i < size; ++i) {
15 int num = trunc(dist(mt));
16 vector.push_back(num);
17 std::cout << num << " ";
18 }
19 std::cout << std::endl;
20
21 std::copy_if (vector.begin(), vector.end(), std::back_inserter(pos), [](int i){return i >= 0;} );
22 std::copy_if (vector.begin(), vector.end(), std::back_inserter(neg), [](int i){return i < 0;} );
23
24 for (const auto i: pos)
25 std::cout << i << ' ';
26 std::cout << std::endl;
27
28 for (const auto i: neg)
29 std::cout << i << ' ';
30 std::cout << std::endl;
31 }