После цикла for не сохраняется значение - C (СИ)
Формулировка задачи:
Есть задача:
Пользователь вводит в массив из десяти элементов любые числа (заполняет массив). Нужно показать ему суму всех чисел от первого отрицательного числа до последнего. Пример:
Числа в массиве:
1
2
1
23
-4
3
4
-1
9
1
Сума равна 3+4=7. Число 3 и 4 находятся между первым отрицательным (-4) и последним (-1).
Вот мой код:
Проблема в том, что в первом цикле for (где ищем first), переменная first не сохраняется, хотя я ее инициализировал до цикла. С переменной last все хорошо. Где ошибка, если циклы почти идентичны?
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 не сохраняется значение»
textual
Листинг программы
int first, last, sum1;
Объяснение кода листинга программы
- Объявляются три переменные: first, last, sum1.
- Переменная first инициализируется значением 1.
- Переменная last инициализируется значением 10.
- Переменная sum1 инициализируется значением 0.
- Запускается цикл for, который выполняется 10 раз, так как last = 10.
- Внутри цикла переменная first увеличивается на 1, поэтому на каждой итерации цикла first = 2, 3, 4, ..., 11.
- На каждой итерации цикла к переменной sum1 прибавляется значение переменной first, поэтому sum1 = 1+2, 3+2, 4+2, ..., 11+2.
- После завершения цикла переменная sum1 будет содержать сумму чисел от 1 до 11 (включительно), то есть sum1 = 55.
- Код завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д