Вывести номер предпоследнего положительного элемента из одномерного массива - C (СИ)
Формулировка задачи:
Нада вывести номер предпоследнего положительного элемента из одномерного массива
Решение задачи: «Вывести номер предпоследнего положительного элемента из одномерного массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main () { int *arr, N, count = 0; printf ("N = "); scanf ("%d", &N); arr = (int *) malloc (N * sizeof (int)); printf ("Array: "); for (int i = 0; i < N; i ++) { arr [i] = -5 + rand () % 10; printf ("%d ", arr [i]); } for (i = N - 1; i > -1; i --) if (arr [i] > 0) { count ++; if (count == 2) { printf ("\nIndex: %d\n", i); break; } } if (count < 2) printf ("\nNo two positive elements\n"); free (arr); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
N
- для хранения количества элементов в массиве;arr
- для хранения адреса начала массива;count
- для подсчета количества положительных элементов.
- Задается размер массива
N
с помощью функцииscanf()
. - Выделяется память под массив с помощью функции
malloc()
. - В цикле
for
заполняется массив случайными значениями от -5 до 5 с шагом 1. - В цикле
for
начиная с предпоследнего элемента проверяется, является ли элемент положительным. - Если элемент положительный, увеличивается счетчик
count
. - При достижении значения
count
равного 2, выводится индекс последнего положительного элемента и из цикла выходится с помощью оператораbreak
. - Если после прохода по всем элементам массива значение
count
меньше 2, выводится сообщение об отсутствии двух положительных элементов. - Выполняется функция
free()
, освобождающая память, выделенную под массив. - Возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д