Top.Mail.Ru
Ответы

Помогите с С++

Помогите пожалуйста

По дате
По рейтингу
Аватар пользователя
Просветленный
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
 #include <iostream> 
#include <vector> 
#include <algorithm> 
#include <random> 
#include <ctime> 
 
using namespace std; 
 
// Функция для заполнения массива случайными числами 
void fillArrayRandom(vector<double>& arr, int size) { 
    random_device rd; 
    mt19937 gen(rd()); 
    uniform_real_distribution<> dis(1.0, 100.0); 
 
    for (int i = 0; i < size; ++i) { 
        arr.push_back(dis(gen)); 
    } 
} 
 
// Функция для ввода массива с клавиатуры 
void fillArrayFromInput(vector<double>& arr, int size) { 
    double value; 
    for (int i = 0; i < size; ++i) { 
        cout << "Введите значение " << i + 1 << ": "; 
        cin >> value; 
        arr.push_back(value); 
    } 
} 
 
// Функция для объединения двух массивов и сортировки по убыванию 
vector<double> mergeAndSort(const vector<double>& arr1, const vector<double>& arr2) { 
    vector<double> merged(arr1.begin(), arr1.end()); 
    merged.insert(merged.end(), arr2.begin(), arr2.end()); 
    sort(merged.rbegin(), merged.rend()); 
    return merged; 
} 
 
int main() { 
    int size1, size2; 
    vector<double> arr1, arr2; 
 
    cout << "Введите размер первого массива (от 1 до 100): "; 
    cin >> size1; 
    if(size1 < 1 || size1 > 100) { 
        cout << "Неверное значение размера массива. Попробуйте снова." << endl; 
        return 1; 
    } 
 
    cout << "Заполнить первый массив случайными числами или вручную? (1 - случайно, 2 - вручную): "; 
    int choice; 
    cin >> choice; 
 
    if (choice == 1) { 
        fillArrayRandom(arr1, size1); 
    } else if (choice == 2) { 
        fillArrayFromInput(arr1, size1); 
    } else { 
        cout << "Неверный выбор. Попробуйте снова." << endl; 
        return 1; 
    } 
 
    cout << "Введите размер второго массива (от 1 до 100): "; 
    cin >> size2; 
    if(size2 < 1 || size2 > 100) { 
        cout << "Неверное значение размера массива. Попробуйте снова." << endl; 
        return 1; 
    } 
 
    cout << "Заполнить второй массив случайными числами или вручную? (1 - случайно, 2 - вручную): "; 
    cin >> choice; 
 
    if (choice == 1) { 
        fillArrayRandom(arr2, size2); 
    } else if (choice == 2) { 
        fillArrayFromInput(arr2, size2); 
    } else { 
        cout << "Неверный выбор. Попробуйте снова." << endl; 
        return 1; 
    } 
 
    vector<double> mergedArray = mergeAndSort(arr1, arr2); 
 
    cout << "Объединенный и отсортированный массив по убыванию: " << endl; 
    for (const auto& num : mergedArray) { 
        cout << num << " "; 
    } 
    cout << endl; 
 
    return 0; 
} 

Этот код определяет функции для заполнения массивов случайными числами и с клавиатуры, объединяет два массива и сортирует их по убыванию. Пожалуйста, убедитесь, что у вас установлен компилятор C++, чтобы запустить этот код.