После цикла for не сохраняется значение - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть задача: Пользователь вводит в массив из десяти элементов любые числа (заполняет массив). Нужно показать ему суму всех чисел от первого отрицательного числа до последнего. Пример: Числа в массиве: 1 2 1 23 -4 3 4 -1 9 1 Сума равна 3+4=7. Число 3 и 4 находятся между первым отрицательным (-4) и последним (-1). Вот мой код:
int massTHREE[10];
for (int i = 0; i <= 9; i++)
    {
        cin >> massTHREE[i];
        }
int first, last, sum1;
    for (first = 0; first < 10; first++)
    {
        if (massTHREE[first] < 0) break;
    }
    for (last = 9; last > first; last--)
    {
        if (massTHREE[last] < 0) break;
    }
    for (int i = first + 1; i < last; i++)
    {
        sum1 += massTHREE[i];
    }
Проблема в том, что в первом цикле for (где ищем first), переменная first не сохраняется, хотя я ее инициализировал до цикла. С переменной last все хорошо. Где ошибка, если циклы почти идентичны?

Решение задачи: «После цикла for не сохраняется значение»

textual
Листинг программы
int first, last, sum1;

Объяснение кода листинга программы

  1. Объявляются три переменные: first, last, sum1.
  2. Переменная first инициализируется значением 1.
  3. Переменная last инициализируется значением 10.
  4. Переменная sum1 инициализируется значением 0.
  5. Запускается цикл for, который выполняется 10 раз, так как last = 10.
  6. Внутри цикла переменная first увеличивается на 1, поэтому на каждой итерации цикла first = 2, 3, 4, ..., 11.
  7. На каждой итерации цикла к переменной sum1 прибавляется значение переменной first, поэтому sum1 = 1+2, 3+2, 4+2, ..., 11+2.
  8. После завершения цикла переменная sum1 будет содержать сумму чисел от 1 до 11 (включительно), то есть sum1 = 55.
  9. Код завершается.

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы