Nonstop788848
?>

C++. заданы два массива a(n) и b(m из массива a выбрать и напечатать числа, которые больше хотя бы одного из элементов массива b. использовать функции! ​

Информатика

Ответы

Суховодова599

#include <iostream>

#include <time.h>

#include <vector>

using namespace std;

void print_array(int* arr, int n) {

for (size_t i = 0; i < n; i++) {

 cout << arr[i] << " ";

}

cout << endl;

}

int* auto_input_array(int* arr, int n) {

for (size_t i = 0; i < n; i++) {

 arr[i] = rand() % 200 - 100;

}

return arr;

}

void print_vector(vector<int> vec) {

for (int elem : vec) {

 cout << elem << " ";

}

cout << endl;

}

int min_in_array(int* arr, int n) {

int min_arr = arr[0];

for (size_t i = 0; i < n; i++) {

 if (arr[i] <= min_arr) {

  min_arr = arr[i];

 }

}

return min_arr;

}

vector<int> selection_of_elements_in_the_first_array_at_the_minimum_of_the_second_array(int* arr1, int n, int* arr2, int m) {

int count = 0;

int min_arr2 = min_in_array(arr2, m);

vector<int> vec;

for (size_t i = 0; i < m; i++) {

 if (arr2[i] <= min_arr2) {

  min_arr2 = arr2[i];

 }

}

for (size_t i = 0; i < n; i++) {

 if (arr1[i] >= min_arr2) {

  vec.push_back(arr1[i]);

 }

}

return vec;

}

int main() {

srand(time(NULL));

setlocale(LC_ALL, "Russian");

int n;

cout << "Введите количество элементов в массиве A: ";

cin >> n;

int m;

cout << "Введите количество элементов в массиве B: ";

cin >> m;

int* array1 = new int[n];

int* array2 = new int[m];

int sum = 0;

vector<int> vec;

array1 = auto_input_array(array1, n);

array2 = auto_input_array(array2, m);

print_array(array1, n);

print_array(array2, m);

vec = selection_of_elements_in_the_first_array_at_the_minimum_of_the_second_array(array1, n, array2, m);

delete[] array1;

delete[] array2;

cout << "Числа, которые больше любого элемента в массиве B: " << endl;

print_vector(vec);

}

mariashapar
Ответ: истинности для некоторых троичных логических функцийx   2   1   0   2   1   0   2   1   0y   2   2   2   1   1   1   0   0   0min(x,y)   2   1   0   1   1   0   0   0   0x   2   1   0   2   1   0   2   1   0y   2   2   2   1   1   1   0   0   0max(x,y)   2   2   2   2   1   1   2   1   0x   2   1   0   2   1   0   2   1   0y   2   2   2   1   1   1   0   0   0f2tn22310   0   0   0   0   2   2   0   2   1

вроде так^: >

linda3930

21 путь.

Объяснение:

Для задач такого вида используются довольно универсальные решения. Для города Х вводится характеристика Nх - количество различных путей из города А в город Х. На картинке, например, Nа = 1 (так как единственный попасть в город А из города А - это оставаться в нем), Nб = 1 (единственный попасть из города А в город Б - по прямому пути), аналогично для города Д. В город Г же можно попасть как из города А, так и из города Б, Nг будет равен сумме Nа + Nб. В город Ж можно попасть из городов В, Г и Е, поэтому его Nж будет равен Nв + Nг + Nе.

Давайте найдем количество попасть в каждый город из города А. Для этого начнем идти из города А во все "соседние" города, для которых мы уже можем назвать это количество по принципу, описанному абзацем выше:

Nа = 1

Nб = Nа = 1

Nг = Nа + Nб = 1 + 1 = 2

Nд = Nа = 1

Nе = Nг + Nд = 2 + 1 = 3

...

Мы узнали количество различных путей из города А в город Е. Теперь по аналогии будем искать количество путей из города Е в город П. Чтобы не путаться, введем новую характеристику, например, Cx - количество различных путей из города Е в город X.

Cе = 1

Cж = Cе = 1

Cк = Cж = 1

Cн = Cж = 1

Cм = Cж + Cн = 1 + 1 = 2

Cл = Cж + Cк + Cм = 1 + 1 + 2 = 4

Сп = Cк + Cл + Cм = 1 + 4 + 2 = 7

3 путя из города А в город Е и 7 путей из города Е в город П. Чтобы найти итоговое количество путей, нужно перемножить эти два числа (как бы комбинации каждого путя А->Е с каждым путем Е->П): 3 * 7 = 21.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

C++. заданы два массива a(n) и b(m из массива a выбрать и напечатать числа, которые больше хотя бы одного из элементов массива b. использовать функции! ​
Ваше имя (никнейм)*
Email*
Комментарий*