Если элементы набора возрастают, то вывести 1. Если элементы набора убывают, то вывести (-1) - C (СИ)

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

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

Дано целое число K, а также K набор ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее действие: если элементы набора возрастают, то вывести 1.Если элементы набора убывают, то вывести -1.Если элементы набора не возрастают и не убывают, то вывести 0.

Решение задачи: «Если элементы набора возрастают, то вывести 1. Если элементы набора убывают, то вывести (-1)»

textual
Листинг программы
#include <stdio.h>
int main () {
    int a[] = {
        1, 2, 3, 0,    // 1
        9, 2, 2, 2, 0, // 0
        4, 3, 2, 1, 0  // -1
    };
    int K = 3, i, d, *p = a;
    for (i = 0; i < K; ++i, ++p) {
        d = ((*p < p[1]) ? 1 : ((*p > p[1]) ? -1  : 0 ));
        for (++p; *p && d; ++p) {
            if (!((p[-1] < *p && d ==  1) ||
                  (p[-1] > *p && d == -1))) d = 0;
        }
        for (; *p; ++p);
        printf("%d ", d);
    }
    printf("\n");
    return 0;
}

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

В этом коде на языке C представлена реализация алгоритма сортировки своим ходом (также известного как сортировка вставками) для массива целых чисел. Алгоритм работает следующим образом:

  1. Создается массив a типа int со значениями {1, 2, 3, 0, 9, 2, 2, 2, 0, 4, 3, 2, 1, 0}.
  2. Устанавливается переменная K = 3, которая определяет количество элементов, которые нужно отсортировать.
  3. Переменная i инициализируется нулем, она используется для итерации по массиву.
  4. Переменная d инициализируется нулем, она используется для хранения результата сравнения элементов.
  5. Переменная p инициализируется адресом первого элемента массива a.
  6. Начинается цикл for, который выполняется K раз.
  7. Внутри цикла проверяется, является ли текущий элемент меньше следующего. Если да, то переменная d устанавливается в 1, иначе проверяется, является ли текущий элемент больше следующего. Если да, то переменная d устанавливается в -1, иначе переменная d устанавливается в 0.
  8. Если текущий элемент меньше следующего и переменная d равна 1, или если текущий элемент больше следующего и переменная d равна -1, то вставка текущего элемента в правильное место в отсортированной части массива выполняется путем перестановки элементов.
  9. Переменная p перемещается к следующему элементу после текущего.
  10. Цикл while выполняется до тех пор, пока текущий элемент больше или равен следующему.
  11. Переменная p перемещается к следующему элементу.
  12. Выполняется печать значения переменной d.
  13. По завершении цикла for выводится символ новой строки.
  14. Функция main возвращает 0, что означает успешное выполнение. Таким образом, код реализует алгоритм сортировки своим ходом для массива a и выводит результат на экран.

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


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

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

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