Вывести длину самой длинной цепочки чисел в массиве - C (СИ)
Формулировка задачи:
Добрый вечер. Дан одномерный массив размерностью n. Вводится с клавиатуры числа. Необходимо выделить длину самой длинной цепочки чисел по возрастающей. Пример,ввели числа 1,2,3,4,5,20,9 необходимо вывести: "Максимальная длина 5"
Решение задачи: «Вывести длину самой длинной цепочки чисел в массиве»
textual
Листинг программы
k=0; for (i=0; i<n; ++i) scanf("%d",str[i]); for (i=0; i<n; ++i) { if (str[i+1]==str[i]+1) kol+=1; //увеличиваем счётчик else //если условие не выполняется, значит цепочка оборвалась. Необходимо занести полученное значение в массив str1, а счётчик обнулить { str1[k]=kol; kol=0; ++k; } } for (i=0; i<=k; ++k) { находим наибольший элемент в массиве str1. Это и будет ответ }
Объяснение кода листинга программы
В данном коде решаются две задачи:
- Первая задача: нахождение длины самой длинной цепочки чисел в массиве. Для этого используется два прохода по массиву:
- В первом проходе происходит заполнение массива str числовыми значениями с помощью функции scanf.
- Во втором проходе происходит проверка на возрастание каждого элемента массива str. Если текущий элемент больше следующего на 1, то это означает начало новой цепочки. В этом случае счетчик kol увеличивается на 1. Если условие не выполняется, то это означает окончание текущей цепочки. В этом случае значение счетчика kol записывается в массив str1, а сам счетчик обнуляется. Также увеличивается значение переменной k, которая отслеживает количество записанных в массив str1 значений.
- Вторая задача: нахождение наибольшего элемента в массиве str1. Для этого используется третий проход по массиву str1 с помощью цикла for. Переменная k устанавливается равной 0, а затем в каждой итерации цикла значение переменной k увеличивается на 1. В конце цикла k будет равно количеству элементов в массиве str1, и это будет наибольшее значение в массиве. Список действий:
- Установить переменную k равной 0.
- Заполнить массив str числовыми значениями с помощью функции scanf.
- Выполнить второй проход по массиву str:
- Проверять, является ли текущий элемент больше следующего на 1.
- Если условие выполняется, увеличивать значение счетчика kol на 1.
- Если условие не выполняется, записывать значение счетчика kol в массив str1 и обнулять счетчик kol.
- Увеличивать значение переменной k на 1.
- Выполнить третий проход по массиву str1:
- Находить наибольшее значение в массиве str1.
- Установить переменную k равной количеству элементов в массиве str1.
- Вывести значение переменной k.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д