
C++ Сгенерируйте массив из 10 элементов в диапазоне чисел от 150 до 310. Объявите еще два массива.
Заполните один из них четными числами из первого массива, а второй – нечетными. Оставшиеся незаполненными элементы массива замените нулями

Ответы на вопрос

#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() % 160 + 150;
}
return arr;
}
void print_vector(vector<int> vec) {
for (int elem : vec) {
cout << elem << " ";
}
cout << endl;
}
pair<vector<int>, vector<int>> odd_and_even_number_filling_vectors(int* arr, int n) {
vector<int> vec1,vec2;
for (size_t i = 0; i < n; i++) {
if (arr[i] % 2 == 1) {
vec1.push_back(arr[i]);
}
else {
vec2.push_back(arr[i]);
}
}
return make_pair(vec1, vec2);
}
pair<int*, int*> odd_and_even_number_filling_arrays(int* arr, int n) {
int* arr1 = new int[n];
int* arr2 = new int[n];
int count1 = 0;
int count2 = 0;
for (size_t i = 0; i < n; i++) {
if (arr[i] % 2 == 1) {
arr1[count1] = arr[i];
count1++;
}
else {
arr2[count2] = arr[i];
count2++;
}
}
for (size_t i = count1; i < n; i++) {
arr1[i] = 0;
}
for (size_t i = count2; i < n; i++) {
arr2[i] = 0;
}
return make_pair(arr1, arr2);
}
int main() {
srand(time(NULL));
setlocale(LC_ALL, "Russian");
int n;
cout << "Введите количество строк в массиве: ";
cin >> n;
int* array = new int[n];
pair<vector<int>, vector<int>> pair_vecs;
pair<int*, int*> pair_arrs;
array = auto_input_array(array, n);
print_array(array, n);
pair_vecs = odd_and_even_number_filling_vectors(array, n);
pair_arrs = odd_and_even_number_filling_arrays(array, n);
delete[] array;
cout << "Чётных элементов: ";
print_vector(pair_vecs.second);
cout << "Нечётных элементов: ";
print_vector(pair_vecs.first);
cout << "С использованием массивов:" << endl;
cout << "Чётных элементов: ";
print_array(pair_arrs.second, n);
cout << "Нечётных элементов: ";
print_array(pair_arrs.first, n);
}



Вот пример кода на C++, который генерирует массив из 10 элементов в диапазоне чисел от 150 до 310, заполняет два массива четными и нечетными числами из первого массива и заменяет оставшиеся незаполненными элементы массивов нулями:
cpp#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(0)); // Инициализация генератора случайных чисел
int arr[10]; // Массив из 10 элементов
int even_arr[10] = {0}; // Массив четных чисел, инициализированный нулями
int odd_arr[10] = {0}; // Массив нечетных чисел, инициализированный нулями
// Заполнение массива arr случайными числами в диапазоне от 150 до 310
for(int i = 0; i < 10; i++)
{
arr[i] = rand() % 161 + 150; // Генерация случайного числа от 150 до 310
}
// Заполнение массивов even_arr и odd_arr
int even_count = 0; // Количество четных чисел
int odd_count = 0; // Количество нечетных чисел
for(int i = 0; i < 10; i++)
{
if(arr[i] % 2 == 0) // Если число четное
{
even_arr[even_count] = arr[i];
even_count++;
}
else // Если число нечетное
{
odd_arr[odd_count] = arr[i];
odd_count++;
}
}
// Замена оставшихся незаполненными элементов массивов нулями
for(int i = even_count; i < 10; i++)
{
even_arr[i] = 0;
}
for(int i = odd_count; i < 10; i++)
{
odd_arr[i] = 0;
}
// Вывод результатов
cout << "Массив arr: ";
for(int i = 0; i < 10; i++)
{
cout << arr[i] << " ";
}
cout << endl << "Массив even_arr: ";
for(int i = 0; i < 10; i++)
{
cout << even_arr[i] << " ";
}
cout << endl << "Массив odd_arr: ";
for(int i = 0; i < 10; i++)
{
cout << odd_arr[i] << " ";
}
cout << endl;
return 0;
}
Комментарии в коде объясняют каждую строку.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili