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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2017, 20:35   #1
Vladkp
Пользователь
 
Регистрация: 05.10.2016
Сообщений: 24
По умолчанию Переставить местами максимальный и последний элементы массива - C++

Дано одномерный массив действительных чисел X с количеством элементов n. Составить программу с последующим
условием. На экран вывести начальный и конечный массивы.

Необходимо переставить местами максимальный и последний элементы массива, если
максимальный и минимальный элементы на четных позициях, иначе сделать
знаки элементов массива, которые находятся на нечетных позициях, положительными.

Что-то намутил, но не правильно, поправьте плз


Код:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    srand(time(NULL));
    int n, Mini, Maxi, Max=INT_MIN, Min = INT_MAX;
    cout << "Введите количество элементов массива: ";
    cin >> n;
    cout << "Массив:" << endl;
    int *arr = new int [n];
    for (int i=0; i<n; i++)
    {
        arr[i] = rand()%51 - 25;
        if (arr[i] > Max)
        {
            Max = arr[i];
            Maxi = i;
        }
        if (arr[i] < Min)
        {
            Min = arr[i];
            Mini = i;
        }
        cout << arr[i] << '\t' ;
    }
    cout << endl;
    cout << Mini << endl << Maxi << endl;
    if (Mini%2!=0 && Maxi%2!=0)
    {
        cout << "Новый массив: " << endl;
        for (int i=0; i<n; i++)
        {
            if (arr[i] == Max)
                swap(arr[i], arr[n-1]);
            cout << arr[i] << '\t' ;
        }
    }
    else
    {
        cout << "Новый массив: " << endl;
        for (int i=0; i<n; i++)
        {
            if (i%2)
                arr[i] = abs(arr[i]);
            cout << arr[i] << '\t' ;
        }
    }
    cout << endl;
    delete [] arr;
    system("pause");
    return 0;
}
Vladkp вне форума Ответить с цитированием
Старый 08.04.2017, 11:49   #2
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
Сообщение от Vladkp Посмотреть сообщение
if (Mini%2!=0 && Maxi%2!=0)
Условие сделай наоборот: (Mini%2==0 && Maxi%2==0)
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа в Паскале: Дан одномерный массив С размерностью N. Переставить местами первый и последний элемент массива, если... hars1 Паскаль, Turbo Pascal, PascalABC.NET 7 19.03.2014 17:30
Переставить местами наименьший и наибольший элементы массива. loya Паскаль, Turbo Pascal, PascalABC.NET 1 25.12.2013 01:59
Найти минимальный и максимальный элементы массива Х и поменять их в массиве местами. Элементы массива вычисляются по формуле Xi=(( Милашечка Помощь студентам 0 26.05.2013 13:01
[C++] Переставить местами первый минимальный и первый максимальный элементы массива Aaaaaa111 Помощь студентам 2 27.02.2012 11:56