Упорядочить одномерный массив, оформить как функцию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Проверить, упорядочен ли заданный одномерный массив С по возрастанию элементов. Оформить алгоритм как функцию СИ. Помогите, вот что смог написать, под рукой нет buidera. Помогите проверить и исправить недостатки.
int up(int n, int *c)
{
int i;
b=0;
for (int i = 0; i < n; i++) 
             if (c[i]*c[i]<c[i+1]*c[i+1]){
                 b = c[i];
                 c[i] = c[i+1];  
                 c[i+1] = b;  
            }  
return(b);
}

Решение задачи: «Упорядочить одномерный массив, оформить как функцию»

textual
Листинг программы
int is_ordered(const int * array, const size_t count) {
    return ( count < 2 ) ? 1 : ( array[0] < array[1] ) ? is_ordered(array + 1, count - 1) : 0;
}

Объяснение кода листинга программы

В данном коде реализована рекурсивная функция is_ordered, которая проверяет, отсортирован ли одномерный массив. Алгоритм работы функции следующий:

  1. Если количество элементов в массиве меньше или равно 1, то считается, что массив уже отсортирован и функция возвращает 1.
  2. Если первый элемент массива больше второго, то рекурсивно вызывается функция is_ordered, при этом в качестве аргумента передается указатель на второй элемент массива, а также уменьшенное на 1 количество элементов. Если условие не выполняется, то возвращается 0. Таким образом, рекурсивные вызовы функции is_ordered происходят до тех пор, пока не будет достигнут базовый случай (количество элементов меньше или равно 1). В итоге, функция возвращает 1, если массив отсортирован, и 0 в противном случае.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы