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

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

#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

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

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

Комментарии

чт, 11/22/2012 - 14:10

Спасибо!Очень полезно. Особенно пригодилось проfor (int i=0; i 0) ? a[i]: -a[i]; break; }}Это именно то, что я искал!

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Введи эти символы. Ато роботы одолели!