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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2021, 22:52   #1
wqerty11
Пользователь
 
Регистрация: 24.11.2021
Сообщений: 24
По умолчанию Ввод-вывод элементов массива и решение задачи оформить в виде макросов и разместить их в отдельном модуле С++

С одномерным массивом, состоящим из n вещественных элементов, произвести следующие операции:
1) вычислить произведение положительных элементов массива;
2) вычислить сумму элементов массива, расположенных до минимального элемента.
3) упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах.

Есть код программы, но есть такая проблема. Нужно: ввод-вывод элементов массива и решение задачи оформить в
виде макросов и разместить их в отдельном модуле. Буду благодарен за помощь.

Код:
#include <iostream>
#include <iterator> 
#include <algorithm> 
using namespace std;
 
int main()
{
    setlocale(0, "Russian");
    int n; 
    cout << "Введите параметр n: ";
    cin >> n;
    
    int prod = 1, sum = 0;
    int *mas = new int[n];
 
    for (int i = 0; i<n; i++)
    {
        cout << "Введите элементы массива [" << i << "]: ";
        cin >> mas[i];
        if (mas[i] > 0)
            prod *= mas[i];
    }
    for (int i = 0; i<n; i++)
        cout << mas[i] << " ";
    cout << endl;
    cout << "Произведение положительных элементов массива = " << prod << endl;
 
    for (int i = 0; i < distance(mas, min_element(mas, mas + n)); i++)
        sum += mas[i];
    cout << "Сумма элементов массива до min= " << sum << endl;
    
    int k = n - 1;
    int p = n - 2;
    if (n % 2 == 0)
    {
        k = n - 2;
        p = n - 1;
    }
    for (int i = 0; i<n - 2; i += 2)
        for (int j = k; j>i; j -= 2)
            if (mas[j]<mas[j - 2])
            {
                int t = mas[j];
                mas[j] = mas[j - 2];
                mas[j - 2] = t;
            }
    for (int i = 1; i<n - 2; i += 2)
        for (int j = p; j>i; j -= 2)
            if (mas[j]<mas[j - 2])
            {
                int t = mas[j];
                mas[j] = mas[j - 2];
                mas[j - 2] = t;
            }
    cout << "Отсортированный массив " << endl;
    for (int i = 0; i<n; i++)
        cout << mas[i] << " ";
    cout << endl;
    return 0;
}

Последний раз редактировалось wqerty11; 16.12.2021 в 22:54.
wqerty11 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму элементов матрицы в заштрихованной области. Ввод и вывод матрицы оформить в виде процедур. KrokaKrola Помощь студентам 1 15.04.2015 15:17
Оформить в виде подпрограмм в модуле BumBum4ik Паскаль, Turbo Pascal, PascalABC.NET 1 17.12.2013 16:03
Оформить в виде подпрограмм в модуле BumBum4ik Помощь студентам 1 16.12.2013 13:57
Оформить в виде функции на С/С++ решение задачи Beauty44 Помощь студентам 0 15.05.2013 18:26