Давай разбираться вместе.
1) Идём по массиву, ищем минимальный по модулю элемент. Сохряняем его в отдельную переменную. Ещё раз идём по массиву до тех пор, пока не дойдём до ранее вычисленного элемента. Начиная с текущего индекса идём и складываем все элементы.
2) Выполняется ещё проще, одним проходом по массиву. Заводим флажок, который отвечает за то, встречался ли нам ноль или нет. Изначально он false. В цикле проверяем, если он false, то тогда просто делаем проверку текущего элемента на ноль и взводим флаг в true, а если же он не был false, то тогда складываем элементы массива.
Объявление массива выглядит так: <type> <name>[ <amount> ];
Например:
Код: Выделить всё
int arr[10]; // массив типа int из 10 элеменов (индексы от 0 до 9):
arr[0] = 1; // нулевому элементу присвоили 1
arr[2] = arr[1]; // второму элементу присвоили значение первого элемента
Флажок у нас всегда типа bool.
Например:
Код: Выделить всё
bool flag = false; // объявили переменную-флаг и инийиализировали её false
flag = !flag; // инвертировали значение флага (было true - стало false, было false - стало true)
if (flag) // проверка на то, взведён ли флаг (равен ли флаг true)
{
// do something
}
Цикл выглядит так: for ( <инийиализирующий блок>; <блок проверки не-выхода из цикла>; <блок изменения счётчика>)
Например:
Код: Выделить всё
for (int i = 0; i < 10; ++i)
{
// do something
}
Такой цикл выполнится 10 раз. При этом счётчик пробежит значения от 0 до 9, и внутри цикла, на каждой итерации значение счёткика можно будет использовать по назначению (например для обращения к i-ому элементу массива)