Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2022, 21:52   #1
Maxim_Volkov
Новичок
Джуниор
 
Регистрация: 08.03.2022
Сообщений: 1
По умолчанию Односвязные списки. C++

Есть программа, которая генерирует две упорядоченные по возрастанию последовательности (X и Y) размером m и n (3 ≤ m, n ≤ 20) элементов. Из них я также создал ещё одну упорядоченную (по убыванию) последовательность Z, размером m + n. Что именно нужно сделать? Нужно использовать односвязные списки для размещения этих последовательностей.

Код:
#include <iostream>
#include <conio.h>
#include <cstdlib>
using namespace std;

int main()
{
    setlocale(LC_ALL, "RUS");
    int X[20], Y[20];
    int i, m, n;
    cout << "Введите размер последовательности X m = (3..20): ";
    while (!(cin >> m) || m < 3 || m > 20)
    {
        cout << "Ошибка ввода " << "\n";
        cout << "Вы ввели неправильный размер X m = (3..20)" << "\n ";
        cout << "Введите размер последовательности X m = (3..20): ";
    }
    cout << "Введите размер последовательности Y n = (3..20): ";

    while (!(cin >> n) || n < 3 || n > 20)
    {
        cout << "Ошибка ввода " << "\n";
        cout << "Вы ввели неправильный размер X n = (3..20)" << "\n ";
        cout << "Введите размер последовательности X n = (3..20): ";
    }
    X[0] = rand() % 10 + 1;
    cout << "--Последовательность X: " << X[0] << "";
    for (i = 1; i < m; i++)
    {
        X[i] = X[i - 1] + rand() % 10 + 1;
        cout << " " << X[i];
    }
    Y[0] = rand() % 10 + 1;
    cout << "\n" << "--Последовательность Y: " << Y[0] << "";
    for (i = 1; i < n; i++)
    {
        Y[i] = Y[i - 1] + rand() % 10 + 1;
        cout << " " << Y[i];
    }

    int length = n + m;
    int* Z = new int[length];
    int k = 0;
    for (int j = 0; j < m; j++) {
        Z[k] = X[j];
        k++;
    }
    for (int j = 0; j < n; j++) {
        Z[k] = Y[j];
        k++;
    }
    for (int j = 0; j < length - 1; ++j) {
        for (int l = j + 1; l < length; ++l) {
            if (Z[j] < Z[l]) {
                swap(Z[j], Z[l]);
            }
        }
    }
    cout << endl;
    cout << "--Последовательность Z: ";
    for (int j = 0; j < length; j++) {
        cout << Z[j] << " ";
    }
   
    delete[] X;
    delete[] Y;
    delete[] Z;
    return 0;
}
Maxim_Volkov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
динамические структуры(списки). односвязные списки c++ Асдин Помощь студентам 2 16.07.2020 14:18
Односвязные списки SsAn Visual C++ 0 02.05.2014 17:35
Односвязные списки на Си majuw Помощь студентам 2 08.09.2013 07:33
Односвязные списки Anna T Паскаль, Turbo Pascal, PascalABC.NET 2 19.12.2010 18:58
Односвязные списки art_stalker Общие вопросы C/C++ 5 21.04.2010 22:49