Все положительные элементы массива увеличить в два раза - C (СИ)
Формулировка задачи:
Все положительные элементы массива а1, а2 , ..., а20, расположенные правее первого нулевого элемента, увеличить в два раза.
Решение задачи: «Все положительные элементы массива увеличить в два раза»
textual
Листинг программы
bool flag = false; for ( int i = 0 ; i < N; i ++ ) { if ( mas[i] == 0 ) flag = true; if ( flag && mas[i] > 0 ) mas[i] *= 2 ; }
Объяснение кода листинга программы
В данном коде представлена логика обработки массива в следующем порядке:
- Переменная типа bool
flag
инициализируется значениемfalse
. Она будет использоваться для контроля наличия нулевых элементов в массиве. - Происходит цикл по всем элементам массива
mas
от индекса0
доN-1
. - Внутри цикла проверяется два условия:
- Если значение текущего элемента массива
mas[i]
равно0
, то переменнаяflag
устанавливается в значениеtrue
. Это необходимо для того, чтобы на следующем шаге цикла проверить, были ли в массиве нулевые элементы. - Если значение переменной
flag
равноtrue
и текущий элемент массиваmas[i]
больше0
, то значение этого элемента удваивается с помощью оператора умножения*= 2
.
- Если значение текущего элемента массива
- После завершения цикла, переменная
flag
не будет иметь значенияtrue
, так как все нулевые элементы были обработаны и увеличены в два раза. Таким образом, в результате выполнения данного кода, все положительные элементы массива будут увеличены в два раза.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д