Нахождение суммы модулей элементов массива размещённых после ноля

Сообщение об ошибке

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls в функции menu_set_active_trail() (строка 2405 в файле /home/ih139182/public_html/includes/menu.inc).

В этой статье я расскажу вам как найти сумму элементов массива, которые размещены после ноля (ну или любого другого символа).
Прежде всего отмечу, что мы не будем использовать никаких сторонних библиотек. Эта задача проста и не трубет особо громоздкого кода.

#include <iostream>
using namespace std;

В главной функции программы оприделим наш массив:

int a[10] = {1,-3,5,0,-5,6,8,9,-8,6};

Зарезервируем переменную для суммы:

int summa = 0;

Теперь в цикле будем проходить массив до нахождения необходимого элемента:

for (int i=0; i<10; i++){
        if (a[i]==0) {
            for (i=i+1; i<10; i++)   ////обратите внимание, что проход начинается со следующего элемента! Ноль проходить нам  ненужно.. 
                summa += (a[i] > 0) ? a[i]: -a[i];
            break;
        }
}

После нахождения необходимого элемента добавляем в переменную суммы модули элементов.
Модуль числа можно найти при помощи функции abs(), но это очень просто реализовать при помощи тернарного оператора. Рассмотрим его суть.

(a[i]>0) ? a[i] : -a[i];

Если будет выполнено условие (a[ i ] > 0) т.е. число положительное, то к сумме будет добавлен элемент a[ i ]; если элемент отрицателен (a[ i ] > 0) - необходимо изменить знак ( -a[ i ] ).
После прохода вложенного массива необходимо остановить проход проход главного. Это делается при помощи ключевого слова break.
Теперь осталось только вывести на экран результат:
cout << "Cумма элементов после 0 = " << summa;
У меня после компиляции получилось вот так:

Cумма элементов после 0 = 42

Наша программа готова.

Просмотров:   4200