Вопрос по информатике:
В массиве целых чисел найти группу наименьшей длины, которая состоит из убывающей последовательности четных цифр написать код в с++
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 03.02.2017 06:35
- Информатика
- remove_red_eye 1893
- thumb_up 12
Ответы и объяснения 1
#include
using namespace std;
/* Searching of the minimal sequence of the even numbers.
* ARGUMENTS:
* - array of the numbers:
* int mainArray[];
* - number of elements in the array:
* int numOfEl;
* RETURNS: None.
*/
void MinSeqOfNum(int mainArray[], int numOfEl)
{
int
minSeqLenght = numOfEl + 1, // минимальная длина последовательности
seqLenght = 1, // длина текущей последовательности
numEnd = 0; // номер элемента, на котором заканчивается последовательность
/* Цикл обработки массива */
for (int i = 1; i < numOfEl; i++)
{
if (mainArray[i] < mainArray[i - 1] && mainArray[i] % 2 == 0 && mainArray[i - 1] % 2 == 0)
seqLenght++;
else
{
if (seqLenght < minSeqLenght && seqLenght != 1)
minSeqLenght = seqLenght, numEnd = i;
seqLenght = 1;
}
}
/* Дополнительная проверка на случай, если минимальная последовательность * закончилась на последнем элементе массива */
if (seqLenght < minSeqLenght && seqLenght != 1)
minSeqLenght = seqLenght, numEnd = numOfEl;
if (minSeqLenght != numOfEl + 1)
{
cout << endl << endl << "Minimal sequence = " << minSeqLenght << endl << "Group: " << endl;
/* Вывод группы с минимальной длиной */
for (int i = numEnd - minSeqLenght; i < numEnd; i++)
cout << mainArray[i] << "; ";
}
else
cout << endl << endl << "There is no such sequence exists..." << endl;
} /* End of the 'MinSeqOfNum' function */
/* Main program function.
* ARGUMENTS: None.
* RETURNS:
* (int) errors level for operation system.
*/
int main()
{
srand(time(0));
int
numOfEl, // кол-во элементов в массиве
*mainArray; // основной массив
/* Инициализация кол-ва элементов массива */
cout << "Input number of the elements: ";
cin >> numOfEl;
/* Выделение памяти под массив */
if (numOfEl > 0)
mainArray = new int[numOfEl];
else
{
cout << "Error! Number of the elements cannot be negative!";
return 0;
}
/* Инициализация основного массива случайными значениями */
for (int i = 0; i < numOfEl; i++)
mainArray[i] = rand() % 1000;
/* Инициализация основного массива пользовательскими значениями */
/*
for (int i = 0; i < numOfEl; i++)
cin >> mainArray[i];
*/
/* Вывод массива */
for (int i = 0; i < numOfEl; i++)
cout << mainArray[i] << "; ";
/// Поиск последовательности убывающих четных чисел /// MinSeqOfNum(mainArray, numOfEl);
system("pause");
return 0;
} /* End of the 'main' function */
- 04.02.2017 00:42
- thumb_up 32
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.