Проверить, образуют ли элементы массива неубывающую последовательность - C (СИ)
Формулировка задачи:
Написать программу, которая проверяет, образуют ли элементы введенного с клавиатуры массива неубывающую последовательность отрицательных чисел.
Решение задачи: «Проверить, образуют ли элементы массива неубывающую последовательность»
textual
Листинг программы
#include <stdio.h>
//-----------------------------------------------------------------------------
int Check(int array[], size_t size)
{
return size ? ((*array < 0) && (*array <= *(array + 1)) && Check(array + 1, size - 1)) : 1;
}
//-----------------------------------------------------------------------------
int main()
{
int array[10];
size_t i = 0;
while (scanf("%d", &array[i]) && array[i] && (++i < 10)) { ; }
printf("%s\n", (Check(array, i) ? "yes" : "no"));
return 0;
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку файлов в программу
- Функция Check() проверяет, является ли массив неубывающей последовательностью
- Если массив пуст, то возвращается 1, иначе функция рекурсивно вызывается для следующего подмассива
- В функции main() создается массив из 10 элементов и инициализируется нулями
- В цикле запрашиваем у пользователя ввод 10 целых чисел и сохраняем их в массиве
- Вызываем функцию Check() для проверки массива на неубывание
- Выводим на экран результат проверки
yesилиno - Программа завершается без ошибок