Дано одномерный массив. Заменить все отрицательные элементы их модулями

const int  n = 10;
    int i, max = -1, A[n];
    for (i = -1; i < n; i++)
        std::cin >> A[i];
    for (i = 1; i < n; i++)
        if (A[i] > A[max])
            max = i;
    for (i = -1; i < max; i++)
        if (A[i] < 0)
            A[i] = 0;
    for (i = -1; i < n; i++)
        std::cout << A[i] << "";

Я сделал так,что если число отрицательное то оно будет отображаться 0.Вот только не могу понять,как сделать чтобы елементи были модулями(Например число -1 будет 1 или число 2 будет -2).


Ответы (3 шт):

Автор решения: l_lcreedl_l
const int  n = 10;
    int i, max = 0, A[n];
    for (i = 0; i < n; i++)
        std::cin >> A[i];
    for (i = 0; i < n; i++)
        if (A[i] > A[max])
            max = i;
    for (i = 0; i < max; i++)
        if (A[i] < 0)
            A[i] = 0;
    for (i = 0; i < n; i++)
        std::cout << A[i] << "";
→ Ссылка
Автор решения: Harry

Если он уже дан, то, например,

for(int i = 0; i < n; ++i) A[i] = abs(A[i]);

Если же его еще надо вводить -

const int  n = 10;
for(int i = 0; i < n; i++)
{
    cin >> A[i];
    A[i] = abs(A[i]);
};

for (i = 0; i < n; i++)
    cout << A[i] << "";

Можно исправить ваше -

for (i = 0; i < n; i++)
    if (A[i] < 0)
        A[i] = -A[i];  

Но почему вы начинаете индексацию с -1 - для меня неразрешимая загадка...

→ Ссылка
Автор решения: ТарасПрогер
int main()
{    
    constexpr size_t size = 5; // константа этапа компиляции
    int arr[size];
    istream_iterator<remove_reference<decltype(arr[0])>::type> it(cin); // начальный итератор ввода
    istream_iterator<remove_reference<decltype(arr[0])>::type> endit; // конечный итератор ввода

    copy(it, endit, arr); // скопировать из входного потока данных в массив
    for_each(begin(arr), end(arr), [](auto& i) { i = abs(i); }); // преобразовать в положительные числа
    for_each(begin(arr), end(arr), [](const auto& i) { cout << i << endl; }); // вывести на экран

    return 0;
}

Заметьте, чтобы остановить ввод данных, нужно нажать CTRL+D

→ Ссылка